2

我的文档中有大约 20 个字段

我只想选择 2 个字段并忽略其他字段

我按照这里的建议尝试了以下代码

collection. find({}, {  Name: 1, District: 1,_id:0},{limit:5}, function (e, docs) {
        res.json(docs);
    });

但它返回所有领域。我只想获得名称和地区。

即我有姓名、地​​区、国家、密码、电话号码、电子邮件ID、照片和许多其他字段。我只想选择名称和地区。

PS我正在寻找除将所有其他字段名称设为0以外的方法

我正在使用和尚

4

4 回答 4

4

使用Monk时,将要选择的字段作为包含空格分隔的字段名称的字符串传递,使用-前缀排除字段。

collection.find({}, 'Name District -_id', function (e, docs) {
    res.json(docs);
});

您还可以将字段选择作为字符串数组传递:

collection.find({}, ['Name', 'District', '-_id'], function (e, docs) {
    res.json(docs);
});
于 2015-08-13T13:25:14.203 回答
1

在使用和尚时,我更喜欢这样的东西

query={'userType':'crew'}; // condition to select users
query2=['_id' ,'firstname' , 'lastname'] ; //Array, Limit the fields to retrieve 
collection.find(query,query2, function(error,crew){
    if(error)
        response.send(error)
    else {
        response.send(crew);
    }
});

请注意,最好包含“_id”,否则 ng-repeat 会导致问题,您必须使用 $index 对其进行迭代。希望能帮助到你

于 2017-01-31T12:56:41.410 回答
1

你有没有尝试过:

db.<collection>.find({},{"Name": 1, "District": 1})
于 2015-08-13T13:01:59.960 回答
0
collection.find().select('field1,field2').then((data) =>{res.send(data)})
于 2021-08-13T10:59:08.087 回答