让我说我有数据
db = [
{ "make": "audi", "year": "2018", "url": "xyz.com/makes-2019-"},
{ "make": "audi", "year": "2013", "url": "abc.com/car/audi-2013"}
]
让我说如果URL中存在品牌或年份,我需要查询数据。 例如像这样
db.cars.aggregate([
{
"$match": {
"$or": [
{ "url": {"$regex": $model, "$options": "i"}},
{ "url": {"$regex": $year, "$options": "i"}}
]
}
}])
除了map-reduce之外,这似乎无法解决任何问题?
答案 0 :(得分:2)
您可以使用$indexOfCP
来检查url
字符串是否包含make
子字符串
db.collection.aggregate([
{ "$match": {
"$expr": {
"$ne": [
{ "$indexOfCP": ["$url", "$make"] },
-1
]
}
}}
])