如果文档没有';MongoDB Javascript不存在吗?

如果文档没有';MongoDB Javascript不存在吗?,javascript,mongodb,Javascript,Mongodb,如果MongoDB不存在文档,如何创建文档 if(db.collection.find({_id: _id}) == null) { db.collection.insertOne({_id: _id}); } 这就是我所想的逻辑。请试试这个 > var _id = 'the-black-horse-london-pub-san-francisco'; > if (db.users.find({_id: _id}).count() == 0) {db.users.insert(

如果MongoDB不存在文档,如何创建文档

if(db.collection.find({_id: _id}) == null) {
  db.collection.insertOne({_id: _id});
}
这就是我所想的逻辑。

请试试这个

> var _id = 'the-black-horse-london-pub-san-francisco';
> if (db.users.find({_id: _id}).count() == 0) {db.users.insert({_id: _id})}
> db.users.find({})
  { "_id" : "the-black-horse-london-pub-san-francisco" }
请试试这个

> var _id = 'the-black-horse-london-pub-san-francisco';
> if (db.users.find({_id: _id}).count() == 0) {db.users.insert({_id: _id})}
> db.users.find({})
  { "_id" : "the-black-horse-london-pub-san-francisco" }

您可以通过一个空的upsert以原子方式执行此操作:

db.collection.update({_id: _id}, {}, {upsert: true});

如果具有匹配的
\u id
的文档已存在,则更新将是不可操作的,否则将创建文档。

您可以通过空的upsert以原子方式执行此操作:

db.collection.update({_id: _id}, {}, {upsert: true});

如果具有匹配的
\u id
的文档已存在,则更新将是不可操作的,否则将创建一个文档。

可能重复的@adeneo我已经尝试过了,但是我得到了错误
MongoError:need remove或update
可能重复的@adeneo我尝试过了,但是我得到了错误
MongoError:need remove或update
我在问题中的if语句只是伪代码,不起作用,我并不是在尝试创建一个新的
ObjectId()
;我只是想找到一个_id或任何参数。它只是一个字符串一个例子是旧金山黑马伦敦酒吧@NathanO,我已经更新了我的答案,正确的方法可以通过检查
cousor.count()
来完成。由于
find
返回游标…我在问题中提出的if语句只是伪代码,不起作用,我不想创建一个新的
ObjectId()
;我只是想找到一个_id或任何参数。它只是一个字符串一个例子是旧金山黑马伦敦酒吧@NathanO,我已经更新了我的答案,正确的方法可以通过检查
cousor.count()
来完成。由于
查找
返回游标。。。