如何从结果中删除 mongo 特定字段(NodeJS、Mongoose)

Ara*_*yan 5 mongoose mongodb node.js

我想从查询结果中删除所有 Mongo 特定字段(如“_id”)。有没有一种简单的方法可以做到这一点,还是应该手动删除字段?如果是,那么哪些是这些领域以及如何做到这一点?

我正在使用 NodeJS 和猫鼬

Ale*_*huk 13

您可以使用 select() 方法从查询中删除字段:

Model.find({}).select("-removed_field").then (resp => {
// your code        
});
Run Code Online (Sandbox Code Playgroud)

您应该在字段名称前指定“-”,以删除该字段。如果要删除多个字段 - 您可以将它们指定为数组:

Model.find({}).select(["-removed_field1", "-removed_field2" ... ]).then (resp => {
// your code        
});
Run Code Online (Sandbox Code Playgroud)

您也可以只选择指定的字段,使用此方法不带“-”

Model.find({}).select(["field1", "field2" ... ]).then (resp => {
// your code        
});
Run Code Online (Sandbox Code Playgroud)

  • 我必须补充一点,您可以使用简单的空格而不是使用数组来分隔字段。例如,Model.find({}).select('-removed_field1 -removed_field2').then... (2认同)

Fur*_*ran 5

如果你想隐藏_id属性,你可以使用带有前缀的文本参数 - 这将从结果中排除这个或那个字段,对于获取特定字段,你应该像这样传递:

Entity.find({ ... }, 'field1 field2', function(err, entity) {
    console.log(entity);  // { field1: '...', field2: '...' }
});
Run Code Online (Sandbox Code Playgroud)