我使用MongoDB作为Python Web应用程序(PyMongo + Bottle)的后端数据库。用户可以上传文件并选择“标记”这些文件。这些标签按照以下方式存储在文档中:将项目添加到PyMongo中的MongoDB文档数组而不重新插入
{
"_id" : ObjectId("561c199e038e42b10956e3fc"),
"tags" : [ "tag1", "tag2", "tag3" ],
"ref" : "4780"
}
我试图让用户在任何文档中追加新标签。我想出了这样的事情:(。FYI; ref
关键始终是唯一的,这可能很容易被_id
以及)
def update_tags(ref, new_tag)
# fetch desired document by ref key as dict
document = dict(coll.find_one({'ref': ref}))
# append new tag
document['tags'].append(new_tag)
# re-insert the document back into mongo
coll.update(document)
好像应该有一个办法只有更新“标签”值直接不用拉回整个文件并重新插入。我在这里错过了什么吗?
任何想法是极大的赞赏:)
两者有什么区别?只是返回值(文档vs UpdateResult对象)?你什么时候使用其中一种? – stackoverflowwww
如果'标签'字段不存在会发生什么? –
如果'tags'字段不存在,则会创建它。 @GauravOjha – styvane