使用node.js查询mongoDB的特定字段

Roh*_*rma 2 mongoose mongodb node.js

在下面的代码中,查询提供了所有字段。我只想查询_id和serialno。如何去做。

架构图

var DataSchema = new Schema({
  serialno: String,
  info: String,
  active: Boolean,
  content: String
});
Run Code Online (Sandbox Code Playgroud)

询问

// Get list of datas
exports.index = function(req, res) {
  Data.find(function (err, data) {
    if(err) { return handleError(res, err); }
    return res.json(200, data);
  });
};
Run Code Online (Sandbox Code Playgroud)

thr*_*n19 8

要仅查询和返回特定字段,这是正确的请求:

Data.find({}, { _id : 1, serialno : 1 }, function (err, data) {
  if(err) { return handleError(res, err); }
  return res.json(200, data);
});
Run Code Online (Sandbox Code Playgroud)

第二个对象params是投影参数,在这个对象中,你可以设置返回或隐藏字段。

更多信息在这里:http : //docs.mongodb.org/manual/reference/method/db.collection.find/


小智 7

如果您使用的是最新的nodejs mongodb驱动程序3.0或更高版本,请尝试以下代码:

Data.find({}).project({ _id : 1, serialno : 1 }).toArray()
Run Code Online (Sandbox Code Playgroud)

  • `.findOne(...).project 不是一个函数`。不好的答案。 (3认同)