Mongodb如果不存在,如何插入(如果存在则不更新)?

Cha*_*nna 7 mongodb

如果文档不存在而不更新现有文档(如果存在),如何插入文档?

假设我有一份文件如下:

  {
          "company":"test", 
          "name":"nameVal"
}
Run Code Online (Sandbox Code Playgroud)

我想检查集合是否包含公司test,如果它不存在我想创建一个新文档.如果它存在我想做什么都没有.我试过updateupsert = true.但它会更新现有文档(如果存在).

这是我试过的:

db.getCollection('companies').update(
    {
  "company": "test"
  },
  {
  "company": "test",
  "name": "nameVal2"
},
{upsert:true}
)
Run Code Online (Sandbox Code Playgroud)

感谢使用一个查询解决此问题的任何帮助.

RaR*_*RaR 7

你可以使用$ setOnInsert之类的,

db.getCollection('companies').update(
   {"company": "test"},
   { $setOnInsert: { "name": "nameVal2", ... } },
   { upsert: true }
)
Run Code Online (Sandbox Code Playgroud)

如果此查询没有执行insert,$setOnInsert则不会产生任何影响.因此,名称将仅在插入时更新.