我已经使用以下连接连接了一个mongo db,并且我正在尝试使用post方法在该数据库中插入一条记录/行/文档,但是我很困惑如何通过以下情况做到这一点。
"通过邮寄方法检查记录是否已经存在,如果没有,那么 创建记录">
这就是我建立连接和成功建立连接的方式。 dcollection 中的字段包括 ID、名字、姓氏student_id
我想这样做。
"通过邮寄方法检查记录是否已经存在,如果没有,那么 创建记录"。
import pymongo
from pymongo import MongoClient
db_name = 'student_db'
client = MongoClient('localhost', 27017)
db_obj = client[db_name]
collection=db_obj['mongo_app_student']
Mongo有一组很棒的更新插入命令,如replace_one
,replace_many
查看另一篇关于它的精彩文章,当然还有 -> MONGO 文档
请参阅下面的示例,希望这就是您要查找的内容
client = MongoClient('localhost', 27017)
db = client.student_db
collection = db.mongo_app_student
collection.insert_one({"name":"vladimir"})
for document in collection.find():
pprint(document)
合并命令
obj1 = {"name":"Vladimir"} # V in upper case here
collection.update_one( { "name" : obj1["name"] } , {"$set":obj1} , True ) # True means Upsert
obj2 = {"name":"Being Human"}
collection.update_one( { "name" : obj2["name"] } , {"$set":obj2} , True ) # True means Upsert
for document in collection.find():
pprint(document)
来自Pymongo Docs的另一个例子
obj1 = {"name":"Vladimir"}
obj2 = {"name":"Being Human"}
requests = [ReplaceOne({"name" : obj1["name"]}, obj1, upsert=True),ReplaceOne({"name" : obj2["name"]}, obj2, upsert=True)]
result = collection.bulk_write(requests)
result.modified_count