найти, когда ключи неизвестны в mongodb - PullRequest
0 голосов
/ 05 июля 2018

У меня есть такая структура документа

{  
   "storeId":"WES-1234",
   "items":{  
      "PA-001":{  
         "name":"Cheetos Flamin' Hot",
         "qty":5,
         "inbound":7
      },
      "QX-7785":{  
         "name":"Kraft Handi Snack",
         "qty":7,
         "inbound":0
      }
   }
}

Теперь я хочу поискать items, чей name содержит "Nabisco". Как мне это сделать? Как вы все видите, items - это карта, а не список. Mongo - версия 2.6

так, в коллекции структура документа такая, и я хочу знать, в каких магазинах есть как минимум 3 Nabiscos или 4 Cheetos и т. Д.

PA-001 и QX-7785 являются кодами элементов, они генерируются динамически и, следовательно, их значения не являются фиксированными или известны заранее

Есть ли способ запросить эту структуру? С javascript все в порядке, пока он может выполнять запрос, который мне нужен.

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

@ sprintone, измените структуру вашего документа на что-то вроде этого:

{  
  "storeId":"WES-1234",
  "items":[{  
     "reference": "PA-001",  
     "name": "Cheetos Flamin' Hot",
     "qty":5,
     "inbound":7
  }, ...]
}

Таким образом, вы сможете выполнять конкретные запросы массива ($ elemMatch ...), а также использовать ссылку в качестве «foreignKey» для выполнения поиска. Так будет гораздо гибче!

0 голосов
/ 05 июля 2018

моя версия db монго v4.0.0, в консоли монго:

db.test.find({"items.PA-001.name": /Nabisco/})

если не получится, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...