Python 如何将元素推送到MongoDB中的现有阵列?
我生成三元代码片段作为主键。字段Python 如何将元素推送到MongoDB中的现有阵列?,python,mongodb,pymongo,database,Python,Mongodb,Pymongo,Database,我生成三元代码片段作为主键。字段words是由三元键表示的术语数组,例如: { "trigram": "#ha", "words": ["hahaha", "harley", "mahalo"] } 问题在于将新术语推送到数组中。我不知道如何使用$addToSet进行此设置 db["Terms"].update({ "trigram": trigram, {"$addToSet": {"words":word} }) 它应该将word附加到words字段。但是数据库仍
words
是由三元键表示的术语数组,例如:
{
"trigram": "#ha",
"words": ["hahaha", "harley", "mahalo"]
}
问题在于将新术语推送到数组中。我不知道如何使用$addToSet
进行此设置
db["Terms"].update({
"trigram": trigram,
{"$addToSet": {"words":word}
})
它应该将word
附加到words
字段。但是数据库仍然为空,不会返回任何错误消息
我该怎么办?除非您使用
upsert
选项,否则更新将只修改现有文档,而不会创建它们。请尝试以下方法:
db["Terms"].update(
{ "trigram":trigram },
{ "$addToSet":{"words":word} },
upsert=True)
通过使用upsert
选项,如果缺少文档,它将创建文档,否则只需更新现有文档。尝试此db[“Terms”].update({“trigram”:“#ha”},{“$addToSet”:{“words”:“word”})
请记住,您需要更新,因此需要分离查找{“trigram”:“#ha”}
,更新{“$addToSet”:{“words”:“words”}
并在”
中添加单词是否有效:db[“Terms”]。更新({“trigram”:“{addToSet”:“ha”,{“$addToSet”:{“words”:words})
?它的工作原理是不会产生错误消息。但它不符合我的要求…(它什么也不做)