1、update更新数据
import pymongo
mongo_client = pymongo.MongoClient( host="192.168.0.112", port=27017, username="admin", password="123456" ) mongo_db = mongo_client["db1"]
res = mongo_db.chat.find() for i in res: print(i)
|
import pymongo
mongo_client = pymongo.MongoClient( host="192.168.0.112", port=27017, username="admin", password="123456" ) mongo_db = mongo_client["db1"]
res = mongo_db.chat.update_one({"age": 13}, {"$set": {"age": 34}})
print(res, res.modified_count)
res = mongo_db.chat.find_one({"age": 34}) print(res)
|
import pymongo
mongo_client = pymongo.MongoClient( host="192.168.0.112", port=27017, username="admin", password="123456" ) mongo_db = mongo_client["db1"]
res = mongo_db.chat.update_many({"age": {"$gte": 0}}, {"$set": {"age": 888}}) print(res, res.modified_count)
|
2、index索引相关操作
简单总结一下pymongo中与index操作相关一些函数,常用的有:
create_index drop_index index_information
|
最主要的是create_index,可以用它来为mongo的collection建立索引。
以下操作一些简单的例子,代码如下:
import pymongo as pm
client = pm.MongoClient( "mongodb://user:password@127.0.0.1:27017", ssl=True, ssl_ca_certs="/tmp/mongo_local.pem", )
db = client["my_db"]
collection = db["my_collection"]
print([x for x in dir(collection) if "index" in x])
collection.create_index([("x", 1)], unique=True, background=True)
help(collection.create_index)
collection.index_infomation()
collection.drop_index([("x", 1)])
collection.drop_index("idx_x")
collection.create_index([("x", 1), ("y", 1)])
|
语法中(‘x’,1),x值为要创建的索引字段名,1为指定按升序创建索引,可以用pymongo.ASCENDING代替。如果你想按降序来创建索引,则指定为
-1或pymongo.DESCENDING。
在使用create_index()创建索引时,也可指定特定的参数(options),常用可选参数如下:
建索引过程会阻塞其它数据库操作,background可指定以后台方式创建索引,即增加“background”可选参数。“background”默认值为False。
建立的索引是否唯一。指定为True来创建唯一索引。默认值为False.默认情况下,MongoDB在创建集合时会生成唯一索引字段_id。
索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生成一个索引名称。例如create_index([(‘x’,1)]
在不指定name时会生成默认的索引名称‘x_1’。
- expireAfterSeconds:integer
指定一个以秒为单位的数值,完成TTL设定,设定集合的生存时间。需要在值为日期或包含日期值的数组的字段的创建。