node.js - Mongoose 在复杂结构中查找/项目
问题描述
在由对象和数组组成的结构中查找行时遇到问题。
这是我的猫鼬模式:
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”。我希望它只返回与“属性”数组行对应的值,该数组的 id 名为“blabla”。
如果您知道这样做的方法,请不要犹豫;)
谢谢,
弓箭
解决方案
您需要使用$
放置运算符,在您的投影中,尝试放置chkpt.subDocs.$.newValues.attributes.$.value.string
推荐阅读
- laravel - laravel 8 markdown 电子邮件图像未显示
- python - 如何乘以从 arg(*arg) 获得的元素元组?(Python 3)
- c# - C#在最后一行追加一个字符然后一个接一个?
- python - 加密图像的变换和/或旋转
- asp.net-core - .NET Core 如何能够支持在 Windows、Linux 和 Mac 操作系统上运行?
- python - Python:获取字符串列表的列表索引计数
- java - 如何解析对象数组并将特定属性的元素保存到不同的数组?
- outlook - 加载项无法在 Mac Outlook 上静默安装
- r - 无法再在 OneDrive 上保存 R/RStudio 脚本 - Windows
- javascript - 对映射数据执行条件渲染操作 - React