У меня есть массив как это:
{
"_id" : ObjectId("581b7d650949a5204e0a6e9b"),
"types" : [
{
"type" : ObjectId("581b7c645057c4602f48627f"),
"quantity" : 4,
"_id" : ObjectId("581b7d650949a5204e0a6e9e")
},
{
"type" : ObjectId("581ca0e75b1e3058521a6d8c"),
"quantity" : 4,
"_id" : ObjectId("581b7d650949a5204e0a6e9e")
}
],
"__v" : 0
},
{
"_id" : ObjectId("581b7d650949a5204e0a6e9c"),
"types" : [
{
"type" : ObjectId("581b7c645057c4602f48627f"),
"quantity" : 4,
"_id" : ObjectId("581b7d650949a5204e0a6e9e")
}
],
"__v" : 0
}
И я хочу, чтобы создать запрос, который будет возвращать мне, что elementswhere массив типов ALL соответствовать $ в массиве.
Например:
query([ObjectId("581b7c645057c4602f48627f"), ObjectId("581ca0e75b1e3058521a6d8c")])
должен возвращать элементы 1 и 2
query([ObjectId("581b7c645057c4602f48627f")])
должен возвращать элемент 2
query([ObjectId("581ca0e75b1e3058521a6d8c")])
не должен возвращать никакого отношения
Я попытался
db.getCollection('elements').find({'types.type': { $in: [ObjectId("581ca0e75b1e3058521a6d8c")]}})
Но он возвращает элементы, если только один типа соответствует
Почему запрос ([ObjectId ("581ca0e75b1e3058521a6d8c")]) не должен ничего возвращать? –
Поскольку нет элемента, который имеет только тип ObjectId («581ca0e75b1e3058521a6d8c») – Leamas