Node.js 在nodejs中从mongoDB查找多个项目

Node.js 在nodejs中从mongoDB查找多个项目,node.js,mongodb,Node.js,Mongodb,我想查找多个内容,如项目ID和项目状态。 但每次我都是假的。 Node.js代码: app.post('/product', function (req, res) { var collection = req.db.get('itemslist'); var id = req.body.id; var status = req.body.status; collection.findOne({id: id, status: status}, function(e, doc){ console

我想查找多个内容,如项目ID和项目状态。 但每次我都是假的。 Node.js代码:

app.post('/product', function (req, res) {

var collection = req.db.get('itemslist');
var id = req.body.id;
var status = req.body.status;
collection.findOne({id: id, status: status}, function(e, doc){
console.log(id, status);
if (doc == true){
    res.send('true');
    }
else {
    res.send('false');
}

});
});

哪里出了问题?

doc
是一个文档,而不是布尔值。尝试
if(!doc){res.send('false');}else{res.send('true');}

使用
collection.findone()
时,它返回:“一个文档满足作为此方法的第一个参数指定的条件。”

i、 e.文档是集合中的第一个文档,它是包含所有数据的对象


您可以找到更多信息

doc
是一个文档,而不是布尔值。试试`如果(!doc){res.send('false');}否则{res.send('true');}就行了。谢谢你的帮助。回答我的问题,我会接受。请解释一下这个
doc
东西的工作原理,但现在我正在使用
collection.findOneAndUpdate()
来更新数据,但每次更新数据库时都会实现<代码>app.post('/ground',function(req,res){var collection=req.db.get('groundlist');var id=req.body.id;var status=req.body.status;collection.findOneAndUpdate({status:status,id:id},{$set:{status:{booked:}}),function(e,doc){console.log(id,status);if(!doc){res send(false);console.log(e);}否则{res.send(true);}}};})这是我的更新代码。当
upsert
标志为true(默认为false)-当没有匹配的文档时,
findOneAndUpdate()
将创建一个。我看不到您使用此选项,因此当没有id和状态匹配的文档时,您应该得到false。顺便说一下,要处理错误,您可以使用:
。。。函数(e,doc){console.log(id,status);if(e){console.log(e);}else if(!doc){res.send(false);}else{res.send(true);})