在 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){ });