Если у меня есть следующие 3 документа.Как выбрать документы, имеющие как минимум два фиолетовых квадрата.В этом случае это будет только последний элемент.
Я знаю, что могу выбрать документы с любыми фиолетовыми квадратами с db.foo.find({foo: {"$elemMatch": {shape: "square", color: "purple"}}})
Но есть ли способ сказать, что он должен соответствовать определенному числураз?
// Document 1
{ "foo" : [
{
"shape" : "square",
"color" : "purple",
"thick" : false
},
{
"shape" : "circle",
"color" : "red",
"thick" : true
}
] }
// Document 2
{ "foo" : [
{
"shape" : "square",
"color" : "red",
"thick" : true
},
{
"shape" : "circle",
"color" : "purple",
"thick" : false
}
] }
// Document 3
{ "foo" : [
{
"shape" : "square",
"color" : "purple",
"thick" : false
},
{
"shape" : "square",
"color" : "purple",
"thick" : true
}
] }
Этот пример адаптирован из последнего примера здесь: http://www.mongodb.org/display/DOCS/Dot+Notation+%28Reaching+into+Objects%29