3

我对 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”文件。

请帮忙

4

1 回答 1

5

要使用运算符,使用这样创建查询$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);
于 2013-03-07T03:03:42.637 回答