使用Mongodb的java驱动程序,如何在同一个字段上搜索多个值?

时间:2013-03-07 02:20:30

标签: mongodb mongodb-java

我对mongo有点新鲜。我想在一个字段上查询多个值。 在SQL中,我想要这样的东西:

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);

但这似乎只返回“bar”文档。

请帮忙

1 个答案:

答案 0 :(得分: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);