在新用户注册的例子中...如何检查该用户是否存在,创建文档,添加默认字段....而不是两次访问数据库?
用户名在集合中应该是唯一的,不允许重复
我无法将findAndModify({username: bob})
与upsert: true
一起使用,因为用户可以使用用户名bob修改预先存在的记录。
我能想到的唯一方法是
users.insertOne({username: bob}).then(function(doc) { user.findAndModify(doc._id) { $set add default fields })
,但我两次击中数据库是蹩脚的。
答案 0 :(得分:1)
为什么不使用用户名和所有其他字段执行insertOne?假设您在用户名字段中有唯一索引,那么您将获得可以处理的异常。