使用 node.js 查询 mongoDB 的特定字段
Query specific fields of mongoDB using node.js
在下面的代码中,查询为我提供了所有字段。我只想查询 _id 和 serialno。如何去做。
架构
var DataSchema = new Schema({
serialno: String,
info: String,
active: Boolean,
content: String
});
查询
// 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);
});
};
只查询和return特定字段,这是正确的请求:
Data.find({}, { _id : 1, serialno : 1 }, function (err, data) {
if(err) { return handleError(res, err); }
return res.json(200, data);
});
第二个对象参数是投影参数,在这个对象中,你可以设置字段return或隐藏。
更多信息在这里:http://docs.mongodb.org/manual/reference/method/db.collection.find/
在 documentation 之后,您正在使用函数 collection.find(query[[[, fields], options], callback]);
所以你需要指定fields
参数:
Data.find(null, { "_id": true, "serialno": true }, function (err, data) {
if(err) { return handleError(res, err); }
return res.json(200, data);
});
如果您使用的是最新的 nodejs mongodb 驱动程序 3.0 或更高版本,请尝试此代码:
Data.find({}).project({ _id : 1, serialno : 1 }).toArray()
在MongoDB Node.js驱动程序v3.1及以上:
Collection.find({}, {
projection: {
_id: false,
someField: true
}
});
find/findOne 函数的第二个参数是 options
。它支持限制、排序、投影和更多过滤器。
来源:http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findOne
您可以使用下面的代码
enter code here`collection.find({}, { projection: {_id:1, serialno: 1}}
在下面的代码中,查询为我提供了所有字段。我只想查询 _id 和 serialno。如何去做。
架构
var DataSchema = new Schema({
serialno: String,
info: String,
active: Boolean,
content: String
});
查询
// 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);
});
};
只查询和return特定字段,这是正确的请求:
Data.find({}, { _id : 1, serialno : 1 }, function (err, data) {
if(err) { return handleError(res, err); }
return res.json(200, data);
});
第二个对象参数是投影参数,在这个对象中,你可以设置字段return或隐藏。
更多信息在这里:http://docs.mongodb.org/manual/reference/method/db.collection.find/
在 documentation 之后,您正在使用函数 collection.find(query[[[, fields], options], callback]);
所以你需要指定fields
参数:
Data.find(null, { "_id": true, "serialno": true }, function (err, data) {
if(err) { return handleError(res, err); }
return res.json(200, data);
});
如果您使用的是最新的 nodejs mongodb 驱动程序 3.0 或更高版本,请尝试此代码:
Data.find({}).project({ _id : 1, serialno : 1 }).toArray()
在MongoDB Node.js驱动程序v3.1及以上:
Collection.find({}, {
projection: {
_id: false,
someField: true
}
});
find/findOne 函数的第二个参数是 options
。它支持限制、排序、投影和更多过滤器。
来源:http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findOne
您可以使用下面的代码
enter code here`collection.find({}, { projection: {_id:1, serialno: 1}}