Используя MongoDB / Mongoose, рассмотрим мою коллекцию test
, имеющую следующие 2 документа:
"_id" : ObjectId("5c4e3cef9cd12904cfc7ecc0"),
"name" : "REGISTER1",
"properties" : [
{
"property” : "PROP1",
"value" : "GREEN"
},
{
"property” : "PROP2",
"value" : "RED"
}
]
и
"_id" : ObjectId("5c4e3cef9cd12904cfc7ecc0"),
"name" : "REGISTER2",
"properties" : [
{
"property" : "PROP2",
"value" : "RED"
},
{
"property" : "PROP1",
"value" : "GREEN"
}
]
Я использую следующие команды для поиска регистров:
db.tests.find(
{ properties: [
{
"property" : "PROP2",
"value" : "RED"
},
{
"property" : "PROP1",
"value" : "GREEN"
}
]
}).pretty();
Возвращает REGISTER2
, а не REGISTER1
.
Таким же образом:
db.tests.find(
{ properties: [
{
"property" : "PROP1",
"value" : "GREEN"
},
{
"property" : "PROP2",
"value" : "RED"
}
]
}).pretty();
Возвращает REGISTER1
, а не REGISTER2
.
Мне нужно, чтобы оба запроса возвращали оба элемента 'REGISTER1' и 'REGISTER2', так как единственное изменение между ними - это порядок свойств (порядок массива).
Как запросить для возвратакак REGISTER1
, так и REGISTER2
, независимо от порядка массива элементов запроса?