2013-07-22 77 views
0

我再一次花費了大量的挫折時間試圖找出一些聽起來與MongoDB和傑克遜客戶端不成熟的東西,但不成功。所以我有一個用戶標識列表,我試圖找到匹配這些標識的用戶,但似乎我無法讓它工作,我已經嘗試了以下所有查詢,並且沒有返回任何數據。任何幫助greately讚賞:在mongodb/jackson驅動程序用戶中找到一組記錄a id列表?

public static List<User> getUsersInfo(List<String> ids) { 
    Logger.debug("ids" + ids); 

    DBCursor<User> cursor = coll.find().in("_id",ids); 
    System.out.println(cursor.size()); 

    cursor = coll.find().in("id",ids); 
    System.out.println(cursor.size()); 

    cursor = coll.find(DBQuery.in("id", ids)); 
    System.out.println(cursor.size()); 

    cursor = coll.find(DBQuery.in("_id", ids)); 
    System.out.println(cursor.size()); 

輸出:

[debug] application - ids[51eb40b73004b5cf0960505a, 51eb41de3004b2496a916177, 51eb42023004b2496a916178] 
0 
0 
0 
0 

MongoDB的數據:

db.users.find() 
{ "_id" : ObjectId("51eb40763004b5cf09605055"), "email" : " ", ...} 
{ "_id" : ObjectId("51eb40b73004b5cf0960505a"), "email" : " ",...} 
{ "_id" : ObjectId("51eb41de3004b2496a916177"), "email" :"",...} 
{ "_id" : ObjectId("51eb42023004b2496a916178"), "email" : "", ... } 

回答

0

所以我想通了這一點,該文件是完全缺乏和誤導性的,所以在對比到JacksonCollection的findById方法,它可以接受一個字符串作爲Id,你不能在其他地方使用id類型的字符串,這個id被定義爲ObjectId 所以數組你發送的必須是ObjectId類型

public static List<User> getUsersInfo(List<org.bson.types.ObjectId> ids) { 
. 
. 
. 
} 
相關問題