创建新文档
>>>Categories.insert({'test':'test'}) ObjectId('506b563df49a007f73000001')
是的,创建好了。
>>> Categories.find_one({'test':'test'}) {u'test': u'test', u'_id': ObjectId('506b4149f49a007cd0000000')}
给它一个新属性'newAttr',其值为'hello'
>>> Categories.update({'_id':Categories.find_one({'test':'test'})['_id']},{'newAttr':'hello'})
查找相同的文档
>>> Categories.find_one({'test':'test'}) {u'test': u'test', u'_id': ObjectId('506b563df49a007f73000001')}
尚未更新??
搜索包含新属性的内容:
>>> Categories.find_one({'newAttr':'hello'}) {u'newAttr': u'hello', u'_id': ObjectId('506b4149f49a007cd0000000')}
它创建了一个单独的文档,而不是更新前一个文档?
知道如何纠正这个问题吗?
答案 0 :(得分:3)
我在设置新字段时得到的结果不一样,但我使用的是这种语法:
cat.update({'_id':cat.find_one({'test':'test'})['_id']},{'$set':{'newattr':'hello'}})
请参阅here了解$ set说明。
>>> cat.find_one({'test':'test'})
{u'newattr': u'hello', u'test': u'test', u'_id': ObjectId('506b5d07594bc07d90000000')}