我有这个简单的 mongo 集合:
{
"_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"
}
}
]
}
]
}
我已经阅读了很多关于 $where 函数和 map reduce 的内容,但可惜我并没有走得太远。我正在尝试为一个应用程序 ID 选择每个屏幕截图的所有中等图像。我不确定如何只返回每个屏幕截图的中等图像,仅此而已。有任何想法吗?任何指针都会很棒:)
编辑:db.Screenshot.find({ "applicationId": 1, "$where": "function() { return this.screenshots.images.size == 'medium'; }" }).sort([ ]);
我已经走了这么远,但它不起作用。唉。仍在阅读我在谷歌上可以找到的所有内容。