MongoDb - 如果字段不存在则添加新文档,添加默认字段,而不会两次访问数据库

时间:2016-03-07 00:22:25

标签: mongodb

在新用户注册的例子中...如何检查该用户是否存在,创建文档,添加默认字段....而不是两次访问数据库?

用户名在集合中应该是唯一的,不允许重复

我无法将findAndModify({username: bob})upsert: true一起使用,因为用户可以使用用户名bob修改预先存在的记录。

我能想到的唯一方法是 users.insertOne({username: bob}).then(function(doc) { user.findAndModify(doc._id) { $set add default fields }),但我两次击中数据库是蹩脚的。

1 个答案:

答案 0 :(得分:1)

为什么不使用用户名和所有其他字段执行insertOne?假设您在用户名字段中有唯一索引,那么您将获得可以处理的异常。