【发布时间】:2016-01-16 07:33:44
【问题描述】:
我使用 MongoDB 作为 Python Web 应用程序 (PyMongo + Bottle) 的后端数据库。用户可以上传文件并在上传过程中选择“标记”这些文件。标签存储为文档中的列表,如下所示:
{
"_id" : ObjectId("561c199e038e42b10956e3fc"),
"tags" : [ "tag1", "tag2", "tag3" ],
"ref" : "4780"
}
我正在尝试允许用户将新标签附加到任何文档。我想出了这样的事情:
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)
(仅供参考;ref 密钥始终是唯一的。这也很容易成为 _id。)
似乎应该有一种方法可以直接更新“标签”值,而无需拉回整个文档并重新插入。我在这里遗漏了什么吗?
任何想法都非常感谢:)
【问题讨论】:
标签: python mongodb mongodb-query pymongo