Mongoose在复杂的结构中查找/项目

时间:2018-04-27 10:00:27

标签: node.js mongodb mongoose schema

我遇到了在由对象和数组组成的结构中找到线条的问题。

这是我的猫鼬模式:

var subscriberSchema = mongoose.Schema({
    chkpt: {
        subDocs:[
            {
                id: String,
                newValues: {
                    attributes:[
                        {
                            _id: {
                                name: String
                            },
                            value: [
                                {
                                    string: String
                                }
                            ]
                        }
                    ]
                }
            }
        ] 
    }
});

以下是我尝试在该架构上应用的请求:

Subscriber.find({'chkpt.modifiedSubDocs.newValues.attributes.id.name':'blabla'}, 'chkpt.modifiedSubDocs.newValues.attributes.value.string', function (err, subscribers) {
        if (err) return handleError(err);
        // Prints the json
        res.json(subscribers);

问题是返回的json包含其id中至少包含一个“blabla”的每个属性数组。 我希望它只返回与'attributes'数组对应的值,该数组的id为“blabla”。

如果您知道这样做的方法,请不要犹豫;)

谢谢,

Bowbow

1 个答案:

答案 0 :(得分:0)

您需要使用$展示位置运算符,在投影中尝试放置chkpt.subDocs.$.newValues.attributes.$.value.string