####
安装:
Mac OSX 平台安装 MongoDB MongoDB 提供了 OSX 平台上 64 位的安装包,你可以在官网下载安装包。 下载地址:https://www.mongodb.com/download-center#community 从 MongoDB 3.0 版本开始只支持 OS X 10.7 (Lion) 版本及更新版本的系统。
接下来我们使用 curl 命令来下载安装: # 进入 /usr/local cd /usr/local # 下载 sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz # 解压 sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz # 重命名为 mongodb 目录 sudo mv mongodb-osx-x86_64-4.0.9/ mongodb
安装完成后,我们可以把 MongoDB 的二进制命令文件目录(安装目录/bin)添加到 PATH 路径中: export PATH=/usr/local/mongodb/bin:$PATH
注意添加完之后要source ~/.bash_profile
创建日志及数据存放的目录: 数据存放路径: sudo mkdir -p /usr/local/var/mongodb 日志文件路径: sudo mkdir -p /usr/local/var/log/mongodb 接下来要确保当前用户对以上两个目录有读写的权限: sudo chown runoob /usr/local/var/mongodb sudo chown runoob /usr/local/var/log/mongodb 以上 runoob 是我电脑上对用户,你这边需要根据你当前对用户名来修改。
####
启动MongoDB的服务端
接下来我们使用以下命令在后台启动 mongodb: mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log --fork --dbpath 设置数据存放目录 --logpath 设置日志存放目录 --fork 在后台运行 如果不想在后端运行,而是在控制台上查看运行过程可以直接设置配置文件启动: mongod --config /usr/local/etc/mongod.conf 查看 mongod 服务是否启动: ps aux | grep mongod 使用以上命令如果看到有 mongod 的记录表示运行成功。 启动后我们可以使用 mongo 命令打开一个终端: 因为已经加入了bash_profile,所以可以直接mongo运行一个终端 安装了MongoDB之后,是没有密码的, 可以使用Navicat进行MongoDB的连接,
####
此时,可以通过http访问该数据库,mongodb使用了27017
端口,因此在浏览器中打开http://localhost:27017/。
出现如下提示即说明连接成功了。
It looks like you are trying to access MongoDB over HTTP on the native driver port.
#####
使用:
# use命令:使用/创建数据库,如果数据库不存在就创建数据库。
如果使用show dbs查看数据库输出的没有自己刚刚创建的数据库,那就要先执行一下插入数据。
db:查看当前所连接的数据库
查看一条数据:db.test.find()
####
python使用MongoDB
安装
pip3 install pymongo
###
连接:
import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # print(myclient.server_info()) # 判断是否连接成功 mongo_db = myclient['test'] # 这个是库名 mongo_collection = mongo_db['test_collection'] # 这个是表名
插入一条数据:
import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") # print(myclient.server_info()) # 判断是否连接成功 mongo_db = myclient['test'] # 这个是库名 mongo_collection = mongo_db['test_collection'] # 这个是表名 import datetime info = { 'name' : 'Zarten', 'text' : 'Inserting a Document', 'tags' : ['a', 'b', 'c'], 'date' : datetime.datetime.now() } mongo_collection.insert_one(info)
###
插入多条数据:
import datetime info_1 = { 'name' : 'Zarten_1', 'text' : 'Inserting a Document', 'tags' : ['a', 'b', 'c'], 'date' : datetime.datetime.now() } info_2 = { 'name' : 'Zarten_2', 'text' : 'Inserting a Document', 'tags' : [1, 2, 3], 'date' : datetime.datetime.now() } insert_list = [info_1, info_2] mongo_collection.insert_many(insert_list)
####
删除一条数据 delete_one()
# 删除一条数据。若删除条件相同匹配到多条数据,默认删除第一条 mongo_collection.delete_one({'text' : 'a'})
####
删除多条数据:
删除满足条件的所有数据 mongo_collection.delete_many({'text' : 'a'})
####
更新一条数据
info = { 'name': '桃子 ', 'text': 'peach', 'tags': [1, 2, 3], 'date': datetime.datetime.now() } update_condition = {'name' : 'Zarten_2'} #更新的条件,也可以为多个条件 #更新条件多个时,需要同时满足时才会更新 # update_condition = {'name' : 'Pear', # 'text' : '梨子'} mongo_collection.update_one(update_condition, {'$set' : info})
###
更新时,若无满足条件,则插入数据
update_one() 详细说明参考
通过设置upsert为True即可
mongo_collection.update_many(update_condition, {'$set' : info}, upsert= True)
###
更新多条数据 update_many()
info = { 'name': 'Zarten', 'text': 'a', 'tags': [1, 2, 3], 'date': datetime.datetime.now() } update_condition = {'text' : 'a'} #更新的条件 #更新条件多个时,需要同时满足时才会更新 # update_condition = {'name' : 'Pear', # 'text' : '梨子'} mongo_collection.update_many(update_condition, {'$set' : info})
###
查询一条数据
查询一条数据 find_one() 匹配第一条满足的条件的结果,这条结果以dict字典形式返回,若没有查询到,则返回None find_condition = { 'name' : 'Banana', 'text' : 'peach' } find_result = mongo_collection.find_one(find_condition) 可以通过projection参数来指定需要查询的字段,包括是否显示 _id ,更多具体用法参考 find() find_condition = { 'name' : 'Zarten_3', } select_item = mongo_collection.find_one(find_condition, projection= {'_id':False, 'name':True, 'num':True}) print(select_item)
####
查询一个范围的数据
查询范围 范围查询通常用$ 例如:$gte 大于等于 $lt 小于;具体的$符号在文章末尾查看 例如:查询一段时间内的数据 import datetime find_condition = { 'date' : {'$gte':datetime.datetime(2018,12,1), '$lt':datetime.datetime(2018,12,3)} } select_item = mongo_collection.find_one(find_condition) print(select_item)
通过id查询
通过 _id 来查询 查询条件中_id 类型是ObjectId类型,也就是插入时返回的对象。 若 _id 提供的是str类型的,我们需要转成ObjectId类型 from bson.objectid import ObjectId query_id_str = '5c00f60b20b531196c02d657' find_condition = { '_id' : ObjectId(query_id_str), } find_result = mongo_collection.find_one(find_condition) print(find_result)
####
查询多条数据
查询多条数据 find() find() 详细说明 返回满足条件的所有结果,返回类型为 Cursor ,通过迭代获取每个查询结果,每个结果类型为dict字典 find_condition = { 'name' : 'Banana', 'text' : '香蕉' } find_result_cursor = mongo_collection.find(find_condition) for find_result in find_result_cursor: print(find_result)
####
计数
计数 注意:此函数在3.7版本添加,以下的版本无法使用,本人版本为3.6.3 固无法使用 find_condition = { 'name' : 'Zarten_1' } select_count = mongo_collection.count_documents(find_condition) print(select_count)
####
db.hr.count()
####