13

我正在尝试使用猫鼬中的选择运算符为以下对象选择某些字段:

{
    "_id" : ObjectId("5249bb97a5de48bda3000003"),
    "id": 1,
    "geometry" : {
        "coordinates" : [
            1,
            1
        ],
        "type" : "Point"
    },
    "properties" : {
        "TYPE" : "Some Type",
            "TIMESTAMP": ......
    },
    "type" : "Feature"
}

我想 mongo 只返回 'properties.TYPE' 和 properties.TIMESTAMP 字段。我可以使用以下查询在 mongo 中执行此操作:

db.features.find({id: 1}, {'properties.TYPE': 1, 'properties.TIMESTAMP': 1})

我试图在猫鼬中使用 select 语句来做同样的事情: var fields = { properties: { OBJECTID: 1, TIMESTAMP: 1 } } var query = Feature.find({id: 1}).select(fields) ;

Mongo 在尝试这样做时会引发错误,所以我不确定 mongoose 是否正确格式化了嵌套字段对象。

这是正确的方法吗?

4

1 回答 1

19

select您可以在Mongoose 的对象中使用与示例中相同的点符号样式find

var fields = { 'properties.OBJECTID': 1, 'properties.TIMESTAMP': 1 };
var query = Feature.find({id: 1}).select(fields);

您还可以使用 Mongoose 样式选择字符串:

var query = Feature.find({id: 1})
    .select('properties.OBJECTID properties.TIMESTAMP');
于 2013-10-02T02:00:16.583 回答