我正在尝试使用pymongo将字段添加到现有文档中。
这是我的代码:
from pymongo import MongoClient
client = MongoClient()
db = client['profiles']
collection = db['collection']
def createFields():
collection.update({'_id' : '547f21f450c19fca35de53cd'}, {'$set': {'new_field':1}})
createFields()
当我在mongoDB解释器中输入以下内容时
>use profiles
>db.collection.find()
我可以看到指定的文档中没有添加任何字段。
答案 0 :(得分:1)
_id字段最常见的是ObjectId()类型,它是一个12字节的值,而不是你在这里提供的24字节字符串。
您必须使用正确的类型才能匹配文档。
答案 1 :(得分:0)
您应该在脚本
之前添加db
试试这个,它适用于我
> use profiles
> db.collection.insertOne({'_id': '547f21f450c19fca35de53cd'})
> db.collection.find()
{ "_id" : "547f21f450c19fca35de53cd" }
from pymongo import MongoClient
client = MongoClient()
db = client['profiles']
collection = db['collection']
def createFields():
db.collection.update({'_id' : '547f21f450c19fca35de53cd'}, {'$set': {'new_field':-881}})
createFields()
> python test.py
> use profiles
> db.collection.find()
> { "_id" : "547f21f450c19fca35de53cd", "new_field" : -881 }
对于pymongo,请使用
update_one
或update_many
代替update