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

2024-01-09

我想知道是否有一种方法可以直接通过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);
       }
}
}

Note: executeQuery()不是内置函数。它仅用于演示目的。 那么,java api中有没有一个函数可以将json字符串转换为aBasicDBObject实例?谢谢。


是的,有办法,将过滤器作为字符串传递。例子:

BasicDBObject query = BasicDBObject.parse("{userId: {$gt: \"1\"}}");
FindIterable<Document> dumps = crapCollection.find(query);

您还可以使用com.mongodb.util.JSON,但我不推荐。它的描述性较差。

DBObject dbObject = (DBObject)JSON.parse("{userId: {$gt: \"1\"}}");

请注意,这可能容易受到 SQL 注入的攻击,因为您自己解析/构建过滤器。

我建议使用Jongo 的参数化查询 http://jongo.org/#query-templating.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过Java像查询(JSON)一样执行Mongo 的相关文章

随机推荐

  • 在 Cors 中发送原始 cookie 不适用于 VideoJS

    我有以下子域 stream example com sub example com 这两个域都有 SSL 证书并且有效 我在用videoJS 7 6 6其中有http streaming https github com videojs h
  • 如何检查Android中指纹认证的设备兼容性

    我正在使用 android 6 0 api 进行指纹身份验证 我的要求是 如果当前设备支持指纹认证 那么我将进行指纹认证 否则将使用正常方式登录应用程序 所以 任何人都可以告诉我 如何检查 Android 中指纹认证的设备兼容性 提前致谢
  • 带有 python 列表和拆分的 IndexError 消息

    我正在尝试学习 python 并深入研究字符串函数 作为一个简单的例子 我写了这个 example line username 231 2 gecos field home dir usr bin false FILENAME etc pa
  • d3.在 inkscape 上选择:label=“foo”

    我正在尝试按其选择一个图层inkscape label属性能够在网站上显示 隐藏图层 function hideFOO if d3 select hideFOO checked node d3 select layer11 attr vis
  • 访问 AWS Elastic Beanstalk .net core 应用程序中的 wwwroot 文件夹

    在过去的几天里 我一直在尝试找出为我的 EB net core 项目存储图像的最佳方法 当我最初开发它时 我只是将图像存储在wwwroot images whatever I needed 目录 然而 我在部署后不久发现该项目没有权限写入
  • 将事件附加到数组的每个元素

    我制作了几个图标 当鼠标悬停时 他们应该做一些事情 现在 我已经制作了一个图标数组 但是当我将each 应用于该集合时 它不起作用 所以我需要以下代码块将悬停事件附加到集合的每个元素 var icon set new Array icon
  • 已删除的文件仍然出现在 Directory.GetFiles 结果中

    我有两个网络方法 第一个是 void deleteFile string filePath File Delete filePath 另一个是 string getAllFile at the same folder Directory G
  • 使用 KClass 类型绑定到 Map

    我正在尝试绑定的子类ViewModel他们的地图KClass types Module abstract class ViewModelModule Binds IntoMap ViewModelKey MyViewModel class
  • Python - 如何获取维基百科将我重定向到的页面?

    我想存储一些不同的维基百科链接 但我不想将同一页面的两个不同链接存储两次 例如 以下链接不同 但它们指向相同的维基百科页面 https en wikipedia org w index php title 1S 1 Methyl 2 3 4
  • 如何在 rmarkdown pdf 输出中为单元格着色

    我无法让 cellcolor 在 rmarkdown 中工作 header includes usepackage colortbl usepackage color output pdf document r results asis l
  • Powershell根据属性值比较2个哈希表数组

    我有一组哈希表 如下所示 hashtable1 hashtable1 name aaa hashtable1 surname hashtable1 surname bbb hashtable2 hashtable2 name aaa has
  • 如何使用 kurento-media-server 进行纯音频流?

    我只想在对等点之间进行音频流通信 我更改了 kurento utils js 的部分以通过 getusermedia 仅获取音频流 但它不起作用我用这个例子节点你好世界 https github com Kurento kurento tu
  • JNI 的 CMake 项目

    好的 我的目的是为 mac windows 和 linux 创建动态库 以便与 Java 32 位和 64 位 一起使用 我在所有事情上都使用 Jetbrains 产品 在我看来 我设想 随着TeamCity https www jetbr
  • 如何使用另一个具有多个值的数组从数组中删除值?

    我有两个数组 Array1 和 Array2 我需要从 Array1 中删除 Array2 值 我在此处显示两个数组 在Array1中 我的utype id是11和14 我需要从Array2中删除这个id记录 所以我该怎么做 你能帮我吗 A
  • 从 GoLang 的响应中检索到漂亮的 JSON

    我从端点检索 JSON 作为 GET 响应 response http Get https website returning json value com data ioutil ReadAll response Body w Write
  • DoCmd.TransferSpreadsheet 无法识别工作表名称

    我正在尝试使用以下命令从 Excel 工作簿导入工作表DoCmd TransferSpreadsheet 该表的名称是XYZ Priority 我按如下方式调用该方法 DoCmd TransferSpreadsheet FileName f
  • 快速更新领域数据库中的值

    我正在尝试更新领域数据库上的值 如果用户选择包含值的行 我希望能够更新该行的值 这是我的代码 但它没有更新 而是在数据库中创建了另一个值 func updateTodoList todoList TodoListModel name Str
  • PHP 在循环内使用查询的替代方案

    有人告诉我 在循环中使用查询 选择 是一种不好的做法 因为它会降低服务器性能 我有一个数组 例如 Array 1 gt Los Angeles Array 2 gt New York Array 3 gt Chicago 这些只是3个索引
  • 如何在 MySQL 中使用游标循环遍历表?

    我的数据库中有下表 我编写了以下存储过程来循环该表 当我调用这个存储过程时 我只得到一条记录 我可能犯了什么错误 如何解决 Field Type Null Key Default Extra date date NO NULL inQty
  • 通过Java像查询(JSON)一样执行Mongo

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