Я пытаюсь изучить MongoDB, и пока это было потрясающе. Однако я столкнулся с ситуацией, и я не слишком уверен, как ее решить. Надеюсь, кто-то может помочь мне и поблагодарить заранее.
Я хотел получить записи, что значение (целое) массива находится в запросе. Например:
Запись 1:
{"name" : "Mango Shake",
"ingredients" : [{"type" : "fruit", "name" : "mango"},
{"type" : "milk", "name" : "soy milk"}]}
запись 2:
{"name" : "Mango Banana Shake",
"ingredients" : [{"type" : "fruit", "name" : "mango"},
{"type" : "milk", "name" : "soy milk"},
{"type" : "fruit", "name" : "banana"}]}
запись 3:
{"name" : "Milk Shake",
"ingredients" : [{"type" : "milk", "name" : "soy milk"}]}
, тогда у меня бы появился запрос примерно
{"ingredients" : {$all : [{"type" : "fruit", "name" : "mango"},
{"type" : "milk", "name" : "soy milk"},
{"type" : "fruit", "name" : "strawberry"}]}}
потому что у меня есть манго, соевое молоко и клубника. Поэтому я хотел знать, какие тряски я могу сделать. По-видимому, это ничего не возвращает, потому что запрос не может иметь лишний материал. Если я использую $in
, тогда все вернется, но я не смогу сделать манго-банановый коктейль, потому что у меня нет банана.
Так что мне нужен только первый и последний. Есть идеи? Цените это :)
Итак, вы хотите сформировать запрос из тех ингредиентов, которые у вас есть под рукой, тем самым возвращая набор результатов, который включает только те тряски, которые вы могли бы сделать? – chb
да точно .. спасибо chb –
у вас есть какие-либо требования, как будто это должен быть только один запрос? могу ли я просто вернуть имя/id? –