如何将元素推送到MongoDB中的现有数组?

2024-06-02 15:51:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我生成三元代码片段作为主键。字段words是由三元键表示的一组术语,例如:

{
    "trigram": "#ha",
    "words": ["hahaha", "harley", "mahalo"]
}

问题是将新术语推到数组中。我不知道怎么用$addToSet来做这个。在

^{pr2}$

它应该将word追加到words字段。但是数据库仍然是空的,没有返回任何错误消息。在

我该怎么办?在


Tags: 代码数据库错误数组trigramword术语words
2条回答

试试这个db["Terms"].update({ "trigram": "#ha"}, {"$addToSet": {"words":"word"} })

记住你需要更新,所以需要separe查找{ "trigram": "#ha"}更新{"$addToSet": {"words":"word"} },并在" "中添加单词。在

除非使用upsert选项,update只会修改现有文档,而不会创建它们。试试这个:

db["Terms"].update(
  { "trigram":trigram }, 
  { "$addToSet":{"words":word} }, 
  upsert=True)

通过使用upsert选项,它将创建缺少的文档,否则只更新现有文档。在

相关问题 更多 >