我正在嘗試使用QueryBuilder(MongoDB Java API 2.9.1)構建$ in查詢。當查詢是一個字符串數組時,我沒有問題,但是當我嘗試使用一個ObjectId數組時它不起作用(不返回任何內容)。如何在MongoDB中使用QueryBuilder構建ObjectIds查詢
我能夠成功運行查詢,並從控制檯結果:
查詢控制檯: db.collection.find({刪除:假的,APP_ID:{$於:[的ObjectId(」 4f75c533ac99d845186e19b2 「),的ObjectId(」 4f75c533ac99d845186e19b3" )]}})由QueryBuilder的創建
查詢(MongoDB中的Java API 2.9.1):
對象[] IDS; (ids).and(「removed」)。is(false).get();返回值類型爲().disableId();}}。在DBOBJECT
的ToString生產: { 「APP_ID」:{ 「$的」:[{ 「$ OID」: 「4f75c533ac99d845186e19b2」}]}, 「刪除」:假}
不知道如果我做錯了什麼或者API不支持和$在ObjectId類型的查詢中。有任何想法嗎?
也許只是一個錯字,但你的外殼採用「APPLICATION_ID」和'ToString'輸出呈現「APP_ID 」。 – JohnnyHK
對不起toString輸出是正確的。它應該讀取app_id而不是application_id。我會更新這個問題。 – AaronE
在您的控制檯查詢中,您的數組中有兩個目標,但是當您在Java代碼中運行它時,您只有一個對象ID,所以也許這就是爲什麼沒有任何內容與查詢匹配的原因。這是一個錯字嗎?嘗試打印出您的IDS數組,您是否將正確的東西傳遞給.in()?這是一個錯字嗎? – Louisa