我生成三元组片段作为主键。字段words
是由trigram键表示的术语数组,例如:
{
"trigram": "#ha",
"words": ["hahaha", "harley", "mahalo"]
}
问题是将新的术语推到数组中。我不知道怎么用
$addToSet
来做这个。db["Terms"].update({
"trigram": trigram,
{"$addToSet": {"words":word}
})
它应该将
word
附加到words
字段。但是数据库仍然是空的,没有返回任何错误消息。我该怎么办?
最佳答案
除非使用upsert
选项,update
将只修改现有文档,而不是创建它们。请改为:
db["Terms"].update(
{ "trigram":trigram },
{ "$addToSet":{"words":word} },
upsert=True)
通过使用
upsert
选项,如果缺少文档,它将创建文档,否则只需更新现有的文档。