bri*_*rns 6 mongodb mongodb-query
我试图弄清楚如果该文档尚未存在于该集合中,如何将文档插入到集合中.如果文档已经存在,则该语句应为no-op.
我采用的方法是使用带有空更新文档的upsert:
db.collection.update({ ...query... }, { }, { upsert: true })
Run Code Online (Sandbox Code Playgroud)
但Mongo告诉我"更新文件不能为空".如何在不必要地更新现有文档的情况下完成此操作?谢谢.
编辑:我的查询文档如下所示:
{
"Chromosome" : "4",
"Position" : 60000,
"Identifier" : "rs1345",
"ReferenceAllele" : "N"
}
Run Code Online (Sandbox Code Playgroud)
您可以$setOnInsert在更新对象中使用,这仅适用于upsert导致插入的情况:
var query = {
"Chromosome" : "4",
"Position" : 60000,
"Identifier" : "rs1345",
"ReferenceAllele" : "N"
};
db.collection.update(query, {$setOnInsert: query}, {upsert: true})
Run Code Online (Sandbox Code Playgroud)