我有这个简单的蒙戈集合返回唯一媒介截图为每个软件:MongoDB的 - - 查询嵌入文档中嵌入收集
{
"_id": ObjectId("4fb176f964debef01e000000"),
"applicationId": NumberInt(1),
"screenshots": [
{
"caption": "ddd",
"images": [
{
"size": "large",
"file": {
"$ref": "File",
"$id": ObjectId("4fb176f964debef01e000001"),
"$db": "flukeytest"
}
},
{
"size": "medium",
"file": {
"$ref": "File",
"$id": ObjectId("4fb176f964debef01e000002"),
"$db": "flukeytest"
}
},
{
"size": "small",
"file": {
"$ref": "File",
"$id": ObjectId("4fb176f964debef01e000003"),
"$db": "flukeytest"
}
}
]
},
{
"caption": "tetsss",
"images": [
{
"size": "large",
"file": {
"$ref": "File",
"$id": ObjectId("4fb1771164debe9c1a000000"),
"$db": "flukeytest"
}
},
{
"size": "medium",
"file": {
"$ref": "File",
"$id": ObjectId("4fb1771164debe9c1a000001"),
"$db": "flukeytest"
}
},
{
"size": "small",
"file": {
"$ref": "File",
"$id": ObjectId("4fb1771164debe9c1a000002"),
"$db": "flukeytest"
}
}
]
}
]
}
我一直在阅读了很多关于$其中功能和地图缩小但很可惜我不是很远。我试图选择一个应用程序ID的每个屏幕截图的所有媒体图像。我不确定我如何才能返回每个屏幕截图的中等图像,而没有其他东西。有任何想法吗?任何指针将是巨大的:)
编辑:db.Screenshot.find({ "applicationId": 1, "$where": "function() { return this.screenshots.images.size == 'medium'; }" }).sort([ ]);
到目前为止,我已经得到了这一点,但它不工作。唉。仍然阅读我可以在谷歌找到的一切。
你好。感谢您的回答。今天早上我意识到我的问题有多愚蠢。昨天是漫长的一天。谢谢。 – Flukey
Nah。问一问总无妨。值得肯定的是,这并不是一个巨大的性能损失。 –