select mongodb 只有两个字段使用 monk

select only two fields in mongodb using monk

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

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

我按照建议尝试了以下代码here

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

但它返回所有字段。我只想得到名字和地区。

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

P.S 我正在寻找除了将所有其他字段名称指定为 0

之外的方法

我正在使用 Monk

你试过了吗:

db.<collection>.find({},{"Name": 1, "District": 1})

使用 Monk 时,将字段作为包含 space 分隔的字段名称的字符串传递给 select,使用 - 前缀排除字段。

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

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

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

在使用 monk 时,我更喜欢这样

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 对其进行迭代。 希望对你有帮助

collection.find().select('field1,field2').then((data) =>{res.send(data)})