2013-03-07 28 views
3

我對mongo有點新鮮。我想在一個字段上查詢多個值。 在SQL,我想是這樣的:對於Mongodb使用java驅動程序,如何在同一個字段上搜索多個值?

select * from table where field in ("foo","bar") 

假設我有MongoDB中下列文件

{ 
    "_id":"foo" 
} 
{ 
    "_id":"bar" 
} 

我只是想模仿這個查詢:

db.coll.find({ _id: { $in: [ "foo", "bar" ] } }); 

我想檢索_id爲「foo」或「bar」的所有文檔。 我想使用java驅動程序來做到這一點。

我想是這樣

BasicDBObject query = new DBObject() 
query.append("_id","foo"); 
query.append("_id","bar"); 
collection.find(query); 

,但似乎只返回「酒吧」的文件。

請幫

回答

4

要使用$in運營商,它可能是更容易使用QueryBuilder創建這樣的查詢:

QueryBuilder qb = new QueryBuilder(); 
qb.put("_id").in(new String[] {"foo", "bar"}); 
collection.find(qb.get()); 

或乾淨了一點:

DBObject query = QueryBuilder.start("_id").in(new String[] {"foo", "bar"}).get(); 
collection.find(query); 
+0

我也發現我可以通過編寫 new BasicDBObject()。put(「_ id」,new BasicDBObject(「$ in」,new String [] {「foo」,「bar」})) – kane 2013-03-08 00:14:41

相關問題