0

我正在使用 ObjCMongoDB 库来支持一个简单的 iPad 应用程序。我了解基本的 CRUD 操作以及-[MongoConnection runCommandWithDictionary:onDatabaseName:error:]执行数据库命令(例如findAndModify.

关于聚合框架或一般的聚合,看起来我可以count通过以下方式执行简单的数据库命令:

NSDictionary *commandDict = @{@"count": @"myCollection"}:
[myMongoConnection runCommandWithDictionary:commandDict onDatabaseName:@"myDB" error:&err];

是否可以像这里的示例一样执行更复杂的命令/查询?我尝试了以下无济于事。

NSDictionary *commandDict = @{@"aggregate":@"myCollection", @"query": @{@"group":@"myDocType"}};

我仍在学习 Obj-C 和 MongoDB,如果这是一个不知情的问题,我深表歉意。

4

1 回答 1

0

您的聚合命令语法似乎不正确。

请参阅聚合文档中的此示例:

db.runCommand(
{ aggregate : "article", pipeline : [
  { $project : {
     author : 1,
     tags : 1,
  } },
  { $unwind : "$tags" },
  { $group : {
     _id : "$tags",
     authors : { $addToSet : "$author" }
  } }
 ] }
);

如果你从命令行运行 Mongo shell,你可以直接在那里测试你的命令,然后用 Objective-C 编写它。

于 2013-08-04T05:47:46.723 回答