Можно ли использовать значение поля монго в качестве шаблона в $ regex [mongo db]? - PullRequest
0 голосов
/ 26 февраля 2019

Допустим, у меня есть данные


 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"}}
       ]
     } 
    }]) 

это, похоже, не сработает, кроме обхода карты?

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете использовать $indexOfCP, чтобы проверить, содержит ли строка url подстроку make

db.collection.aggregate([
  { "$match": {
    "$expr": {
      "$ne": [
        { "$indexOfCP": ["$url", "$make"] },
        -1
      ]
    }
  }}
])

MongoPlayground

...