[英]How to update a document field in mongoDB using mongoose findOneAndUpdate?
[英]how to update a variable field in a document using mongoose
我在用
db.hs.update(
{username: "hraj3116", "event_movie.name": "h"},
{$set:{"event_movie.$.theatre":"vikas mall"}
})
这在mongodb中更新,并且工作正常。 我如何使用猫鼬来使用它。 我想将“ event_movie”作为变量。
我在用
var s = {'event_movie.name' : 'h'};
var event = {"event_movie.$.theatre" : "theatre"};
//event["event_movie.$.theatre"] = "theatre";
UserEventsDetails.findOneAndUpdate(
{ "username": username , s },
{ "$set": event },
{ "upsert": true, "new": true},
function(err, model){
if (err){
res.send(500, err);
}else{
res.send('done');
}
});
在我们用于通过Shell或使用mongoose API进行更新的查询中没有区别。 在您的情况下,您需要稍微修改query
参数:
var query = {};
query["username"] = username;
query["event_movie.name"] = "h";
产生正确的表示形式,即:
{"username":username,"event_movie.name":"h"}
然后将其用作:
var event = {};
event["event_movie.$.theatre"] = "theatre";
//event["someOtherField"] = "someOtherValue"; --> update some other field.
UserEventsDetails.findOneAndUpdate(
query,
{ "$set": event },
{ "upsert": true, "new": true},
function(err, model){
if (err){
res.send(500, err);
}else{
res.send('done');
}
});
当前构建查询的方式最终将其构建为:
{"username":username,{"event_movie.name":"h"}}
这是错误的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.