question cevabında $ elemMatch kullanarak dizi değerlerini aramak için ilginç bir çözüm buldum.
bizim koleksiyonunda aşağıdaki belgeleri varsa:
{
foo : [ { bar : "xy", baz : 1 },
{ bar : "a", baz : 10 } ]
},
{
foo : [ { bar : "xy", baz : 5 },
{ bar : "b", baz : 50 } ]
}
aşağıdaki sorgu yalnızca ilk belgeyi eşleşir:
db.test.find({
foo : { "$all" : [ { "$elemMatch" : { bar : "xy", baz : 1} }, { "$elemMatch" : { bar : "a", baz : 10 } } ] }
});
Ben birkaç diğer örneklerle denedim ve gerçekten çalışıyor. Ancak $all operatörünün resmi belgeleri bu iki soruyu birleştirmekle ilgili bir şey söylemez.
Bu amaçlanan davranış veya hata mı? Ya da bu belgelerin bu kullanım durumunu kapsamadığı bir sorun mu?
Bilgi için teşekkürler. Her birleşimi belgelemenin zor olduğunu anlıyorum, ancak bazı operatörlerin birleştirilebileceğini bilmek çok yararlı olacaktır. –
Henüz bunu yapmanın bir yolu var mı? –