2016-09-10 27 views
0

我正在使用MongoDB 3.2與Java。我閱讀文檔,並說它使用org.bson.BsonDocument,因爲其他選項如BSONObjectDocument已棄用。現在,我的查詢類似於:MongoDB「查找」查詢與多個查詢文件

db.schools.find({ zipcode: "63109" }, 
    { students: { $elemMatch: { school: 102 } } }) 

我在想:如何在Java中編寫此查詢?

注:在這裏,我們有find函數內部兩個文件,而只接受單一Bson Document或多個Bson Element(S)。

任何幫助,將不勝感激。

回答

1

嘗試使用一個文檔中的條件,如db.schools.find({ zipcode: "000000", students: { $elemMatch: { school: 102 }});

編輯:

因此,您所使用的投影。在java mongodb驅動程序3.3中有:public DBCursor find(DBObject query,DBObject projection)。我想你應該更新你的java mongodb驅動程序。

+0

我試過了,但它返回的是我不想要的數組的所有元素。 – user3925365

+0

是否要查詢所有擁有63109郵編的學校,並且在'學生'子文檔中,有'學校'等於102的任何元素? –

+0

在我的情況下,只有一所學校的郵編爲63109,它在學生陣列中有多個子文檔,我只希望學校有102個。 – user3925365