我遇到了在由对象和数组组成的结构中找到线条的问题。
这是我的猫鼬模式:
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
答案 0 :(得分:0)
您需要使用$
展示位置运算符,在投影中尝试放置chkpt.subDocs.$.newValues.attributes.$.value.string