Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将元素推送到MongoDB中的现有阵列?_Python_Mongodb_Pymongo_Database - Fatal编程技术网

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})
?它的工作原理是不会产生错误消息。但它不符合我的要求…(它什么也不做)