尝试使用 mongodb 插件在 grails 中创建 mongodb 集合

2024-01-10

我正在尝试使用以下方法在 grails 中创建 mongodb 集合:

BasicDBObject DBoptions = new BasicDBObject();
DBCollection collection = db.createCollection("xyz",DBoptions)

但我收到以下错误:

Caused by GroovyRuntimeException: Ambiguous method overloading for method com.mongodb.DBApiLayer#createCollection.    
Cannot resolve which method to invoke for [class java.lang.String, class com.mongodb.BasicDBObject] 
due to   overlapping prototypes between:
[class java.lang.String, interface com.mongodb.DBObject]
[class java.lang.String, interface java.util.Map]

关于如何解决这个问题有什么想法吗?

Thanks


当从 grails 服务类运行时,我在尝试使用 mongo 驱动程序可用的 command() 函数时遇到了类似的问题。

每次我尝试创建一个 DBObject 并将其传递到 command() 函数时,我都会收到一个错误,抱怨 com.mongodb.DBObject 和 java.util.interfaces 之间的原型重叠。例如,尝试使用 db.command() 和 DB 对象创建数据库的新副本会引发该错误...

DBObject cmd = new BasicDBObject()
cmd.put("copydb", 1)
cmd.put("todb", "to_database")
cmd.put("fromdb", "from_database")
mongo.getDB("admin").command(cmd) 

通过一些小线索/错误,最终对我有用的是,我传递了一个标准的常规地图实例,而不是创建 DBObject。我的猜测是,由于 DBObject 使用 java.util.Map 接口,因此两者在大多数情况下应该可以互换。下面的代码最终对我有用..

def cmd = [ copydb: 1, "todb": "to_database", "fromdb": "from_database" ]
mongo.getDB("admin").command(cmd)

听起来您找到了另一种解决方法,但我很好奇,如果您将映射作为选项参数传递给 db.createCollection() 而不是 BasicDBObject (如果它可以工作)。

无论如何,希望这可以帮助那些可能正在努力尝试让其他一些 mongo api 函数在 grails 中工作的人......

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

尝试使用 mongodb 插件在 grails 中创建 mongodb 集合 的相关文章

随机推荐

  • 从输入标签获取名称和值

    在你说 哦不 不再这样 之前 我先陈述一下我的情况 我正在解析 HTML 输出的一部分 我唯一感兴趣的是name and value每个的属性
  • 删除 androidx 首选项上的空白图标空间

    我刚刚将我的项目迁移到使用androidx图书馆 新的首选项 设置屏幕现在显示空的图标空间 如图所示here https developer android com guide topics ui settings organize you
  • 根据用户输入动态创建表

    我目前正在尝试使用 JS 和 HTML 动态创建一个表 但目前它似乎无法从用户输入中检索值 我做错了什么 提前致谢
  • 如何根据 XSD 文件验证 XML 文件?

    我正在生成一些 xml 文件 这些文件需要符合给我的 xsd 文件 我应该如何验证它们是否符合要求 Java 运行时库支持验证 上次我检查的是 Apache Xerces 解析器 你可能应该使用javax xml validation Va
  • Swift 将数组作为参数传递错误

    我刚刚开始使用 Swift 有人可以向我解释一下为什么我可以将数组作为参数传递 byRoundingCorners UIBezierPath roundedRect self bounds byRoundingCorners topLeft
  • Delphi在全局异常中的屏幕截图

    我正在开发一个组件 使用德尔福2006 该组件检索系统信息并写入文件 要求是我必须在组件中合并一个全局异常处理程序 因此当异常发生时它将被捕获并向用户显示我的自定义消息 procedure Tmy GlobalExceptionHandle
  • 在 C# 中通过节点名称和属性名称比较 XML

    我想通过标签名称和属性名称来比较两个 或更多 XML 文件 我对属性或节点的值不感兴趣 在 google 上搜索我发现 XMLDiff Patch http msdn microsoft com en us library aa302294
  • 如何在斯坦福 CoreNLP 服务器上使用自定义 TokensRegex 规则注释器?

    TokensRegex 规则颜色注释器 stanford corenlp full 2016 10 31 tokensregex color rules txt 通过命令行使用 CoreNLP 时加载成功 但对于 Web 服务器则失败jav
  • 如何将文件扩展名与 C# 中的当前可执行文件关联

    我想将文件扩展名与 C 中的当前可执行文件关联起来 这样 当用户随后在资源管理器中单击该文件时 它将使用给定文件作为第一个参数来运行我的可执行文件 理想情况下 它还会将给定文件扩展名的图标设置为我的可执行文件的图标 谢谢大家 似乎没有用于直
  • iOS 7 上的返回箭头

    我需要在我的应用程序中添加一个左栏按钮项目 它看起来像系统后退按钮 但不是系统后退按钮 因为它将出现在视图控制器上 这是我的 navController 堆栈的唯一 vc 并执行我自己的代码 简单地写 后退 对我来说并不是很好 因为我还需要
  • 如何消除除本地 Pod 之外的所有 Pod 的警告?

    我假设类似的事情 post install do installer Debug symbols installer pod project targets each do target target build configuration
  • 使用鼠标和 Swing 绘制(单色)数组的最简单方法是什么?

    我一直在寻找一种在屏幕上绘制黑白数组的方法 这是一个简单的数组 只有 20x20 我计划做的是用鼠标在数组上绘制 以便每个像素在单击时从黑色 切换 到白色并返回 然后将数组作为一组布尔值 或整数 传递给另一个函数 目前我正在使用 Swing
  • 使用 jQuery 发送 JSON 数据

    为什么下面的代码将数据发送为City Moscow Age 25而不是 JSON 格式 var arr City Moscow Age 25 ajax url Ajax ashx type POST data arr dataType js
  • 无子项但不为空的 CSS 选择器

    我想在下面的 HTML 片段中选择 BONKERS 它的区别在于它单独存在于一个 code 块 而它的所有兄弟都包含 a s empty是显而易见的选择 但由于文本节点而不起作用 我以为我知道这些东西 但这让我发疯 ul class Ref
  • Compute Engine SSH:您没有足够的权限通过 SSH 连接到此实例

    我无法通过浏览器或 gcloud 使用 ssh 访问我的 google 云计算引擎实例 我的用户帐户有所需的compute instances osLogin许可 事实上它有Owner角色 并且我已经设置了enable oslogin to
  • 导入错误:没有名为connector.conversion的模块

    我对 mySQL 非常陌生 刚刚将其安装在我的 Mac 操作系统 10 6 8 上 当我尝试通过终端连接数据库时 我收到以下消息 上次登录 6 月 17 日星期二 10 42 23 在控制台 mysqluc e help utility 上
  • 如何降级 jekyll 以使用 github 页面?

    我认为我的主要问题是 github 页面不支持 jekyll 4 这对我来说没问题 但是无论如何我如何降级 jekyll 才能工作呢 我尝试按照此处的说明进行操作 https github com github pages gem issu
  • 日志记录是否应该受到国际化的影响?

    我们目前正在考虑将我们的系列产品运送到世界其他地区 我们将确保用户界面中的所有字符串和日期格式等反映目标国家 地区的语言和文化 我们的日志文件和错误报告也应该这样改变吗 考虑到客户可能会查阅日志文件 或者我们可能在该国家 地区设有本地支持团
  • 在 Angular ui Bootstrap 中控制 isOpen

    我想在 angualr ui bootstrap 手风琴指令中使用 isOpen 属性 这样它将打开手风琴中第一个 ng repeat 的第一个元素 我尝试过一些事情但没有运气 谁能就此提出建议吗 html div class accord
  • 尝试使用 mongodb 插件在 grails 中创建 mongodb 集合

    我正在尝试使用以下方法在 grails 中创建 mongodb 集合 BasicDBObject DBoptions new BasicDBObject DBCollection collection db createCollection