我想达到
获得的结果SELECT AGE FROM COLL WHERE NAME="AYUSH";
我采取了以下方法
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("new");
//var query = { name:'ayush' };
//var age = {age : 1, _id:0};
dbo.collection("coll").find(
{ name:'ayush' },
{ age : 1, _id:0}).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
我得到的结果是
[ { _id: 5a818b71d2029813505d736a,
name: 'ayush',
age: '22',
sex: 'm' } ]
答案 0 :(得分:0)
来自MongoDB文档:Project Fields to Return from Query
返回指定字段和仅_id字段
投影可以通过设置显式包含多个字段 投影文档中的
<field>
到1
。以下操作 返回与查询匹配的所有文档。仅在结果集中 默认情况下,item, status
字段会返回_id
字段 匹配文件。
db.inventory.find( { status: "A" }, { item: 1, status: 1 } )
该操作对应于以下SQL语句:
SELECT _id, item, status from inventory WHERE status = "A"
在您的情况下,如果您只想要字段age
,则必须删除其他字段_id
,name
和sex
,如下所示:
dbo.collection("coll").find({ name:'ayush' },{age:1, _id:0, name:0, sex:0})...
答案 1 :(得分:0)
最简单的方法是将结果转换为数组,然后将该数组作为响应发送。
代码如下:
dbo.collection("coll").find(
{ name:'ayush' },
{ age : 1, _id:0}).toArray(function(err, result) {
if (err) throw err;
var array = [];
array.push(coll[0].age);
res.send(array);});
此外,不要使用mongoClient,而是使用mongoose。更容易和更好