len*_*klb 2 python database mongodb pymongo
我生成trigram片段作为主键.该字段words是由trigram键表示的术语数组,例如:
{
"trigram": "#ha",
"words": ["hahaha", "harley", "mahalo"]
}
Run Code Online (Sandbox Code Playgroud)
问题是将新术语推向阵列.我不知道该怎么用$addToSet.
db["Terms"].update({
"trigram": trigram,
{"$addToSet": {"words":word}
})
Run Code Online (Sandbox Code Playgroud)
它应该附加word到该words领域.但是数据库保持为空而不返回任何错误消息.
我该怎么办?
Joh*_*yHK 11
除非您使用该upsert选项,update否则只会修改现有文档,而不会创建它们.试试这个:
db["Terms"].update(
{ "trigram":trigram },
{ "$addToSet":{"words":word} },
upsert=True)
Run Code Online (Sandbox Code Playgroud)
通过使用该upsert选项,它将在缺少时创建文档,否则只需更新现有文档.