我可以通过ObjCMongoDB库使用Mongo Aggregation Framework吗?

时间:2013-08-03 16:20:56

标签: ios mongodb aggregation-framework objcmongodb

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

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

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

是否可以执行更复杂的命令/查询,例如examples here?我尝试了以下无济于事。

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

如果这是一个不知情的问题,我仍然在学习Obj-C以及MongoDB。

1 个答案:

答案 0 :(得分:0)

您对aggregate命令的语法似乎不正确。

请参阅the docs for aggregate中的此示例:

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

如果从命令行运行Mongo shell,可以直接在那里测试命令,然后再将其写入Objective-C。

相关问题