从mongo结果中删除_id

Luk*_*uka 13 mongodb node.js

我是mongo和nodejs的新手我作为查询的结果我有一个json,我只想将结果作为http请求返回,如下所示:

app.get('/itesms', function(req, res) {
  items.find().toArray(function (err, array) {
    res.send(array);
  })
});
Run Code Online (Sandbox Code Playgroud)

它有效,唯一的问题是我想从结果中隐藏_id字段(递归).有什么建议以优雅的方式做到这一点?

Vad*_*hev 27

尝试此解决方案:

app.get('/itesms', function(req, res) {
  items.find({}, { _id: 0 }).toArray(function (err, array) {
    res.send(array);
  })
});
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用...而下面的一个 (2认同)

小智 8

通常的.find({}, {_id:0})做法是不是为我工作,所以我去打猎和发现另一个这样,请回答,在蒙戈API版本3,您需要把它写这样的:.find({}, {projection:{_id:0}})。因此,例如:

let docs = await db.collection("mycol").find({}, {projection:{_id:0}}).toArray();
Run Code Online (Sandbox Code Playgroud)

看来(至少在nodejs API中)您也可以这样编写:

let docs = await db.collection("mycol").find({}).project({_id:0}).toArray();
Run Code Online (Sandbox Code Playgroud)

  • 这是现在的正确答案。在没有等待的情况下记录文档的值后,这是作为猜测,它显示为一个 Promise。他们的文档中没有说得很清楚。 (4认同)