我有一个快速应用程序,它应该查询我的MongoDB数据库,然后只返回结果的某些字段。我目前的代码如下:
app.get('/stored', (req, res) => {
let pollId = req.query.id;
let pollCursor = db.collection(collName).find({"_id": ObjectId(pollId)}, {"_id": false, "pollName": false}).toArray((err, data) => {
if(err) return err;
let dataObj = data[0];
console.log(dataObj);
});
});
我希望收到一个包含除“_id”和“pollName”字段之外的所有字段的数据对象。但是,我得到的对象仍包含这些字段以及所有其他字段。我究竟做错了什么?
答案 0 :(得分:0)
首先你需要像这样测试:
app.get('/stored', (req, res) => {
let pollId = req.query.id;
res.send(pollId)
return;
});
如果pollId与来自客户端发送的pollId匹配,那很好。您应该创建一个查询,如下所示:
let query = {_id: pollId}
这是我的代码,希望对你有帮助
// https://tudiendanhngon.herokuapp.com/author/detail?id=5adc963c7b76157c65d3b1d9
app.get("/author/detail", function (req, res) {
var id = req.query.id;
var query = {_id: id};
db.collection(COLLECTION_AUTHORS).find(query).exec(function (err, author) {
if (err) {
res.send("Error")
} else {
res.json(author);
}
});
});