当前位置: 首页 > 知识库问答 >
问题:

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

萧芷阳
2023-03-14

我对蒙哥有点陌生。我想在一个字段上查询多个值。在SQL中,我想要这样的内容:

select * from table where field in ("foo","bar")
{
  "_id":"foo"
}
{
  "_id":"bar"
}
db.coll.find( { _id: { $in: [ "foo", "bar" ] } } );
BasicDBObject query = new DBObject()
query.append("_id","foo");
query.append("_id","bar");
collection.find(query);

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

请帮忙

共有1个答案

雷逸仙
2023-03-14

要使用$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);
 类似资料:
  • 在下面的查询中 如何将id{success:'$success',responseCode:'$responseCode',label:'$label},转换为在java mongodb驱动程序中使用。 我试过了 和 多维数组 等 但结果总是这样 如果我只使用一个字段,它就会工作。 DBObject groupFields=new BasicDBObject(“\u id”,new BasicDB

  • 问题内容: 我正在构建一个简单的 搜索 算法,我想 用空格 打破我的 字符串 ,并在其上搜索数据库,如下所示: 这可能吗? 问题答案: 是的,您可以使用SQL 运算符来搜索多个绝对值: 如果要使用,则需要改为使用: 使用(如您所尝试的)要求所有条件为真,使用至少需要一个条件为真。

  • 问题内容: 我想通过JDBC连接到两个不同的Oracle数据库(一个8.0.5.0.0和一个12c)。我确实有两个JDBC驱动程序,它们可以通过简单的“ hello world”应用程序分别成功地连接到相应的DB。下面,我将它们都放在一个Java应用程序中,不幸的是,该应用程序不再起作用(加载了两个驱动程序)。 我已经阅读了这篇文章:从SAMEVENDOR处理多个JDBC驱动程序。提到的选项1可能

  • 问题内容: 我第一次使用Postgresql,并且试图在我的网站中创建一个搜索引擎。我有这张桌子: 然后我为表的每个字段创建了一个索引(这是正确的方法吗?或者我可以为所有字段创建一个索引?): 现在,如果我想在每个索引中搜索一个单词,SQL查询是什么? 我尝试了这个,它的工作原理: 是否存在更好的方法来做到这一点?我可以搜索多个吗?我的一个朋友提出了一个解决方案,但这是针对MySQL数据库的: P

  • 问题内容: Mongo和Java专家。我们的团队决定使用最近在MongoDB中引入的全文本搜索API。但是,我们发现使用Java MongoDB驱动程序执行命令有些困难。 这是我正在使用的代码: 这是我打印时得到的 问题答案: 摘自Google网上论坛(https://groups.google.com/forum/?fromgroups#!topic/mongodb- user/7jWUbunU

  • 问题内容: 我正在尝试通过搜索“ _id”键在MongoDB中查找文档。我的文件看起来像这样- 我正在尝试将此文档搜索为- 但我得到以下错误- BasicDBObject的append方法支持(字符串键,值),如果我将“ _id”作为String传递给此方法,则不会匹配任何文档。 所以我的问题是如何传递“ _id”? 问题答案: 通过使用as作为查询来解决