1

创建一个新文档

>>>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')}

它创建了一个单独的文档而不是更新以前的文档??

知道如何纠正这个问题吗?

4

1 回答 1

3

设置新字段时,我得到的和你不一样,但我使用的是这种语法:

cat.update({'_id':cat.find_one({'test':'test'})['_id']},{'$set':{'newattr':'hello'}})

有关 $set 的说明,请参见此处

>>> cat.find_one({'test':'test'})
{u'newattr': u'hello', u'test': u'test', u'_id': ObjectId('506b5d07594bc07d90000000')}
于 2012-10-02T21:39:09.690 回答