我有一种情况,用户可能会输入多个约束以返回结果。我正在尝试在猫鼬中执行“查找”,我可以执行多个“和”。我认为下面的第一个块会返回我的结果,而是返回我数据库中当前的所有结果。我试图实现的最终目标是来自“5B6D8B”和“BA4D2A”的两个十六进制值条目,仅当 perc >= 5 时才为我提供路径。如果我只是通过“{hex:”5B6D8B”, 'img .perc': {$gte: 5} }" 找到它会拉回一个正确的结果。
clrModel.find([{hex: "5B6D8B", 'img.perc': {$gte: 5} },
{hex: "BA4D2A", 'img.perc': {$gte: 5} }] ,'img.path', function(error,data){});
第二部分是我想,如果可能的话,动态地构建传递给“find”的值。似乎我不能将它作为字符串传递,因为它不起作用。关于如何实现这一目标的任何想法?下面的块是我试图做的,但它不起作用。不确定它是否有助于更好地理解我试图做的事情。下面显示的“finalFind”是我将作为第一个参数传递给查找查询的结果。提前致谢!
var hex, perc, finalFind = '{';
for(var i = 0; i < numIndicies; i++){
finalFind += '{hex:"' + hexArr[i] + '", {perc: {$gte:' + percArr[i] + '}}}';
//Handle our end character
if(i !== numIndicies-1)
finalFind += ',';
else
finalFind += '}';
}
-------- 编辑下方显示文档示例 --------
以下项目代表一个文档条目
{
"__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"
}
}
]
}