我对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”文档。
请帮忙
答案 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);