首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过MongoDB运行基于ObjCMongoDB字典的命令

通过MongoDB运行基于ObjCMongoDB字典的命令
EN

Stack Overflow用户
提问于 2014-12-12 13:55:05
回答 1查看 131关注 0票数 1

其他命令对我来说是正确的,例如:

代码语言:javascript
复制
let commandDictionary = ["count": "trials"]
let error: NSError?
let result = myConnection.runCommandWithDictionary(
    commandDictionary, 
    onDatabaseName: databaseName, 
    error: &error
)

但是,尝试一个distinct命令并不是:

代码语言:javascript
复制
let commandDictionary = ["distinct": "trials", "key": "location"]
let error: NSError?
let result = myConnection.runCommandWithDictionary(
    commandDictionary, 
    onDatabaseName: databaseName, 
    error: &error
)

运行此操作后,error的值为:Optional("MONGO_COMMAND_FAILED: The command returned with \'ok\' value of 0")。在shell中运行(我相信)相同的命令会给出正确的值:

db.runCommand({distinct: "trials", key: "location"})

更新1:

另外,MongoConnection.serverVersion()给了我:"2.6.3"MongoConnection.serverError()返回nil。在shell中运行命令时,详细的服务器日志显示了这一点:

2014-12-12T10:11:54.556-0500 [conn69] command eim.$cmd command: distinct { distinct: "trials", key: "metadata.location" } keyUpdates:0 numYields:0 locks(micros) r:606 reslen:210 0ms

它们为ObjCMongoDb运行的命令展示了如下内容:

2014-12-12T10:10:25.945-0500 [conn171] command eim.$cmd command: isMaster { key: "metadata.location", distinct: "trials" } ntoreturn:1 keyUpdates:0 numYields:0 reslen:138 0ms

更新2:

似乎在某个地方distinct命令被映射到isMaster命令。其他命令也会出现这种情况。例如,命令{listDatabases:1}也映射到isMaster。但是,命令{buildInfo:1}被正确地映射到buildInfo

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-26 23:50:34

正如在这个发行报告中所讨论的,问题是数据库要求键保持有序,但是Swift,像Objective一样,并不保留字典键的顺序。

作为库的作者,我建议的解决方法是使用OrderedDictionary构造命令,该命令包含在库中。

更新:

在库的0.12.0版本中,不推荐使用-runCommandWithDictionary。下面是新方法的代码:

代码语言:javascript
复制
let error: NSError?
let result = myConnection.runCommandWithName(
    "distinct", 
    value: "trials",
    arguments: ["key": "location"],
    onDatabaseName: databaseName, 
    error: &error
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27445189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档