当前位置: 首页 > 面试题库 >

通过Java执行像查询(JSON)这样的Mongo

鲍理
2023-03-14
问题内容

我想知道是否有一种方法可以直接通过Java执行像mongo这样的查询,即我们将像mongoDB这样的查询作为字符串提供给mongoDB的Java驱动程序中的函数作为字符串对象,并返回DBCursor对象。就像是:

import com.mongodb.*;
import java.net.UnknownHostException;
public class ExecuteQuery {
public static void main(String args[]){
    try{
          Mongo m = new Mongo();
          DB db = m.getDB("test");
          DBCollection coll = db.getCollection("first");
          DBObject doc = new BasicDBObject();
          DBCursor cur =coll.executeQuery("db.first.find({"username":"joe"})");
       }
       catch(UnknownHostException e){
          System.out.println(e);
       }
       catch (MongoException.DuplicateKey e) {
          System.out.println("Exception Caught" + e);
       }
}
}

注意:executeQuery()不是内置函数。它仅用于演示目的。那么,java
api中是否有将json字符串转换为BasicDBObject实例的函数?谢谢。


问题答案:

您在此处显示的不是JSON,而是嵌入式MongoDB
Shell的Javascript代码。如果出于某种原因需要在Java环境中执行代码,则必须嵌入Javascript引擎(如Rhino)并实现兼容的API。

否则,您只需要将JSON转换为JSON,DBObject就可以使用JSON.parse()方法或任何其他JSON映射库(例如Jackson)来进行此操作。请注意,MongoDB使用了JSON中不存在的扩展数据类型集:http
:
//www.mongodb.org/display/DOCS/Data+Types+and+Conventions

UPD:Scott Hernandez指出了JSON.parse



 类似资料:
  • 问题内容: 我有以下方法: 在这里,我依次调用三种方法,这依次命中数据库并获取我的结果,然后对从数据库命中获得的结果进行后处理。我知道如何通过使用并发调用这三种方法。但是我想用Java 8 来实现。有人可以指导我如何通过并行流实现相同目标吗? 编辑 我只想通过Stream并行调用方法。 问题答案: 您可以利用这种方式:

  • 问题内容: Elasticsearch具有两个相似的功能来获取“相似”的文档: 有“更多喜欢此API”。它给了我类似于给定文件的文件。我不能在更复杂的表达式中使用它。 在Search API中 也有要使用的查询,我可以在bool或boosting表达式中使用它,但不能给它提供文档ID。我必须提供参数。 我有带有标签和内容的文档。有些文档将具有良好的标签,而有些则不会。我想要一个“类似文档”功能,该

  • 问题内容: 我需要在通过JPA EntityManager访问的数据库中创建一个新表。JPA NativeQueries是否支持“选择”或“更新”以外的查询?还是在JPA上下文中还有另一种先进的方法来执行复杂的SQL查询? 问题答案: jpa“本机查询”仅可用于DML语句(数据处理语言)。要发布任何DDL(例如创建表),您需要从EntityManager获取基础连接。 如何从EM中提取连接将取决于

  • 问题内容: 我正在使用R包通过R访问我的PostgreSQL数据库(9.3)。我有一些非常长且较大的sql查询(从raster2pgsql生成的几个MB大。)。 如何在R中以语句形式发送/执行sql查询文件? 正常方式 似乎无法通过来工作。我试图通过读取整个sql文件作为字符向量,但是这也失败了,因为dbSendQuery显然仅支持单个命令? 问题答案: 或仅用于“ SQL”部分,而不是psql命

  • 问题内容: 假设我在Access中具有以下信息的表格: 我的问题是,如何将第二列中的值连接到基于第一列的行值。我想要的查询结果如下: 我想通过查询来实现。有人可以帮我实现吗? 问题答案: 使用数据的示例:

  • 一旦你建立好数据模型之后,django会自动生成一套数据库抽象的API,可以让你执行增删改查的操作。这篇文档阐述了如何使用这些API。关于所有模型检索选项的详细内容,请见数据模型参考。 在整个文档(以及参考)中,我们会大量使用下面的模型,它构成了一个博客应用。 from django.db import models class Blog(models.Model): name = mo