【发布时间】:2013-06-16 06:32:45
【问题描述】:
在 MongoDb 中,我目前有类似于以下所示的文档。我有多个文件,如下所示。例如,我只想拉回至少包含 25% 的十六进制值 BA4D2A 和 75% 的 FFAB23 的图像路径。
{
"__v": 0,
"_id": {
"$oid": "51c1ac95f502f20969000022"
},
"hex": "BA4D2A",
"img": [
{
"path": "http://example.com/image1.jpg",
"perc": 10,
"_id": {
"$oid": "51c1ac95f502f20969000023"
}
},
{
"path": "http://example.com/image2.jpg",
"perc": 20,
"_id": {
"$oid": "51c1ac95f502f20969000034"
}
}
]
}
在从上一个问题中获得帮助后,如果我正在寻找所有超过单个指定百分比数量的十六进制值,我有以下查询非常适合拉回路径,但我意识到我想成为能够为每个十六进制值分别处理每个百分比。
如果您不知道我在玩 Mongoose/MongoDb 大约需要 4 天,所以如果有更好的方法(架构方面)我愿意接受想法。这种方法只是我在阅读文档和谷歌时想到的。
clrModel.find({
hex: {$in: [ "5B6D8B", "BA4D2A" ] } ,
'img.perc': {$gte: 5}
} ,
'img.path',
function(error,data){
//Handle my data res accordingly
});
};
编辑 ----------- 我已经设法通过下面的代码块得到更接近我想要的东西,但我只想要满足所有标准的路径。下面的查询返回每个单独的十六进制查询的所有结果,但如果有意义的话,我只想要包含十六进制值及其百分比的图像的路径。
clrModel.find({
$or: [
{hex: "5B6D8B", 'img.perc':{$gte: 5}},
{hex: "BA4D2A", 'img.perc':{$gte: 12}}
],
} ,
'img.path',
function(error,data){ });
【问题讨论】:
标签: node.js mongodb mongoose mongodb-query