0

我有一个类似于 mongodb 集合名称属性的数据。

{
            "_id": "593a3d828e2ef100d1496e77",
            "feature_type": "house",
            "features": [
                {
                    "name": "h1"
                },
                {
                    "name": "h2"
                }
            ]
        }

我只想

 [
            {
                "name": "h1"
            },
            {
                "name": "h2"
            }
        ]

结果我尝试了这个

req.db.collection('FeatureSettings').findOne({feature_type: req.params.feature_type}, {features: 1});

这给

{
    "_id": "593a3d828e2ef100d1496e77",
    "features": [
        {
            "name": "Hotel"
        },
        {
            "name": "Apartment"
        }
    ]
}

我该怎么做才能得到上面给出的结果。

4

3 回答 3

0

您必须从投影中排除 _id ,如下所示:

req.db.collection('FeatureSettings').findOne({feature_type: req.params.feature_type}, {features: 1, _id:0});
于 2017-06-09T07:50:45.080 回答
0

您可以尝试这样做以仅返回features数组值。

req.db.collection('FeatureSettings')
 .findOne({feature_type: req.params.feature_type}, {features:1, _id:0}).features;

或者

// if you use mongoose can use 
return req.db.collection('FeatureSettings')
  .findOne({feature_type: req.params.feature_type}, {features:1, _id:0})
  .exec()
  .then((result) => {
     return result.features;
  });
于 2017-06-09T07:51:33.133 回答
0

假设您正在使用返回 promises之类的 mongoose ,您可以使用查询的结果

return req.db.collection('FeatureSettings')
.findOne({feature_type: req.params.feature_type}, {features: 1})
.then((result) => {
    return result.features;
});
于 2017-06-09T07:47:42.933 回答