从NodeJS(最好是使用Mongoose)更新Mongo数据库中的行的最佳方法是什么,如果行尚不存在,则创建它。我尝试了多项功能,save
findOneAndUpdate
update
。它们都是彼此依赖的,例如,行必须存在才能更新它。
我们如何将这些功能组合成一个功能:
If the entry does not exist by 'name', create it, and then...
If the entry does exist, update 'password' with 'data'
假设mongo集合看起来像:
{
"_id": ObjectId("5357c8e0b12b6c375bb0217b"),
"name": "Kimberly",
"password": "data"
}
我当前的代码是乱七八糟的if语句并依赖于err
响应来调用数据库函数。 (例如,在添加用户之前检查用户是否存在)更新或保存后,是否有更好的方法确保数据库中没有重复的条目?
非常感谢
答案 0 :(得分:0)
您可以将findAndModify与upsert = true
一起使用http://docs.mongodb.org/manual/reference/method/db.collection.findAndModify/