2013-10-28 14 views

cevap

31

Sen kullanmak zorunda dot notation: Ayrıca sorguda _id çünkü

bios.find({"_id" : 1, "awards.year" : 1975 }); 

Bu oldukça anlamsız sorgu, ama o size bir örnekle oynuyorsanız gerçeği nedeniyle sanırım . Ayrıca, 1967'den itibaren ödüller aradığınızı, ancak kodun 1975 olduğunu söylüyorsunuz.

"awards" : { "year" : 1975 } için arama yaparsanız, mongodb, tüm alt belgenin awards tümünün tam bir eşleşmesini arar. Bu durumda, istediğin bu değil. Ayrıca, awards bir dizidir, bu her zaman yanlış olacaktır. Belli bir ödül belgesini bir listeye bakmak isteseniz, $elemMatch gitmek için bir yol olacaktır.

+0

Bu yıl bir yazım hatasıydı. Detailled açıklama için çok teşekkürler! –