【问题标题】:mongodb gmongo runCommandmongodb gmongo runCommand
【发布时间】:2014-03-25 22:45:54
【问题描述】:

我正在开发一个 grails/mongodb 项目。 我想使用以下方法对 mongodb 数据库进行全文研究:

db.test.runCommand( "text", { search : "my_texte" } )

问题是我没有找到如何在 groovy(或使用 gmongo)中做到这一点。

如何从 groovy 执行“runCommand”?

谢谢。

【问题讨论】:

    标签: mongodb grails groovy gmongo


    【解决方案1】:

    我找到了可用的 Java 版本:

    DBObject searchCmd = new BasicDBObject();
    searchCmd.put("text", "test"); 
    searchCmd.put("search", "mytexte"); 
    CommandResult res = db.command( searchCmd )
    

    【讨论】:

    • 很公平。这应该。不过,我会向维护者提交一个错误。 groovy 语法应该可以工作。收拾得很好。
    【解决方案2】:

    由于这只是 Java 驱动程序的包装,因此大部分文档都是 there

    只需翻译成“Groovy”形式:

    db.command( "text", [ search: "mytexte" ] )
    

    【讨论】:

    • 是的,我已经尝试过了,但它不起作用。我有以下错误:“捕获:groovy.lang.MissingMethodException:没有方法签名:com.mongodb.DBApiLayer$MyCollection.command() 适用于参数类型:(java.lang.String, java.util.LinkedHashMap) "
    • @CC。这确实很有趣。您是否尝试过将“HashMap”显式转换为第二个参数?如果不接受通用语法,这似乎是一个错误。
    • 仍然不能使用 HashMap 但在文档中我没有看到该方法为命令采用 HashMap 参数。
    • @CC。听起来像个虫子。这应该是直接提交到底层方法。这在某种程度上让我感到惊讶,因为这将在底层 Java 代码中“大量”实现。但是这里的签名似乎是一个问题。我自己可能会对此进行更多研究。
    猜你喜欢
    • 1970-01-01
    • 2021-09-25
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多