我正在尝试创建/更新mongodb
为什么我的代码总是出错?
我的数据库架构:
var userSchema = new Schema({
userAddress: {street: {type: String}, city: {type: String}, zip: {type: String}},
userId: { type: String, required: true, unique: true },
});
var AddressObj = { street:address['addressLine1'], city:address['city'], zip:address['postalCode'] };
User.findOneAndUpdate(
{userId: userID},
{ $set: { "userAddress" : AddressObj} },
function(err, doc){
if(err){
console.log("Something wrong when updating data!");
}
console.log(doc);
});
没有错误。 DB中没有任何项目;(
答案 0 :(得分:1)
如果不存在,你需要告诉mongoose创建一个新的doc。您可以通过将upsert选项指定为第3个参数的一部分来完成此操作。像这样:
User.findOneAndUpdate(
{userId: userID},
{ $set: { "userAddress" : AddressObj} },
{upsert:true, new:true}, //upsert to create a new doc if none exists and new to return the new, updated document instead of the old one.
function(err, doc){
if(err){
console.log("Something wrong when updating data!");
}
console.log(doc);
});