我该如何优化它?我的意思是即使不是表演,也不是可读性......
它是聚合管道的一个阶段。 我必须在对象中匹配搜索标准列表。
500 - "来自"来自对象的属性 - >静态
1000 - " to"来自对象的属性 - >静态
我必须找到与对象相交的所有组。 此外,用户可以定义"<&#;"">"以及"< =","> ="。
它并不总是一个范围,一个比较运算符可能会丢失,所以它必须搜索+ - 无穷大。
提前致谢!
{
"$and": [
{
"$or": [
{
"attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": ">=" }, "attributes.value": { "$lte": 500 }
},
{
"attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": ">" }, "attributes.value": { "$lt": 500 }
},
{
"$and": [
{ "attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": ">=" }, "attributes.value": { "$gte": 500 } },
{ "attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": ">=" }, "attributes.value": { "$lte": 1000 } }
]
},
{
"$and": [
{ "attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": ">" }, "attributes.value": { "$gt": 500 } },
{ "attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": ">" }, "attributes.value": { "$lt": 1000 } }
]
},
{
"attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$nin": [">=", ">"] }
}
]
},
{
"$or": [
{
"attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": "<=" }, "attributes.value": { "$gte": 1000 }
},
{
"attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": "<" }, "attributes.value": { "$gt": 1000 }
},
{
"$and": [
{ "attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": ">=" }, "attributes.value": { "$lte": 1000 } },
{ "attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": ">=" }, "attributes.value": { "$gte": 500 } }
]
},
{
"$and": [
{ "attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": ">" }, "attributes.value": { "$lt": 1000 } },
{ "attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$eq": ">" }, "attributes.value": { "$gt": 500 } }
]
},
{
"attributes.key": { "$eq": "SIZE" }, "attributes.operator": { "$nin": ["<=", "<"] }
}
]
}
]
}