【发布时间】:2015-02-12 23:23:14
【问题描述】:
我有以下代码来更新子集合字段中的文档,并且我得到了代码后面的异常。
router.route('/user/:_id/host/:_id/accept/').post(function(req, res) {
Host.findAndModify({
"query" : {
"_id" : req.body.eventid,
"joinees" : {
"$elemMatch" : {
"userid" : req.body.userid
}
}
},
"update" : {
"$set" : {
"joinees.$.status_code" : 1
},
},
"new" : true,
"upsert" : false
}, function(err, host) {
if (err) {
console.log(err);
res.json(err);
} else {
console.log("kanishka");
res.json(host);
}
});
});
控制台打印的异常如下:
TypeError: undefined is not a function
at Object.handle (/node/Playo1/server1.js:332:7)
at next_layer (/node/Playo1/node_modules/express/lib/router/route.js:103:13)
at Route.dispatch (/node/Playo1/node_modules/express/lib/router/route.js:107:5)
at /node/Playo1/node_modules/express/lib/router/index.js:195:24
at param (/node/Playo1/node_modules/express/lib/router/index.js:268:14)
at param (/node/Playo1/node_modules/express/lib/router/index.js:280:16)
at param (/node/Playo1/node_modules/express/lib/router/index.js:280:16)
at Function.proto.process_params (/node/Playo1/node_modules/express/lib/router/index.js:296:3)
at next (/node/Playo1/node_modules/express/lib/router/index.js:189:19)
at next (/node/Playo1/node_modules/express/lib/router/index.js:166:38)
【问题讨论】:
-
.findAndModify()不是猫鼬模型的方法。请参阅.findOneAndUpdate()或.findByIdAndUpdate(),它们是底层驱动程序方法的特殊用途包装器。 -
@NeilLunn:谢谢 Buddy...它成功了...
标签: node.js mongodb mongoose mongodb-query nosql