ObjectiveDDP和流星更新/插入集合

时间:2015-08-20 19:13:48

标签: ios objective-c json meteor

我正在开发一个显示消息和评论的简单应用程序。我需要通过添加新评论来更新消息。 我创建了一个插入消息和注释的json ..注释是消息的一部分,它是一个数组..

{    
   "text": "Message Text!!!",    
   "createdAt": "new Date()",    
   "comments": [    
      {    
         "text": "Comment One",    
         "createdAt": ""    
      },

      {    
         "text": "Comment Two",    
         "createdAt": ""    
      }    
   ]    
}

从客户端我需要添加一个新注释(注释数组中的一个新项),但我在这个库上真的很新,并且不确定如何调用此方法来更新..

    NSArray *parameters = @[@{@"_id": self.message.messageId},                            
                   @{@"$set":@{@"Comments":@{@"text":@"newComment"}}}];

   [self.meteor callMethodName:@"/Messages/update" parameters:parameters responseCallback:nil];

这会在json注释中添加一个新项,但不会作为数组的一部分添加。

提前致谢!

我正在使用此lib 将mi meteor IOS应用程序设置为流星服务器的客户端。

1 个答案:

答案 0 :(得分:2)

这是一个mongo语法问题。您需要使用$push而不是$set将元素添加到数组中。请参阅https://docs.mongodb.org/manual/reference/operator/update/push/

上的mongo文档

尝试:

NSArray *parameters = @[@{@"_id": self.message.messageId},                            
               @{@"$push":@{@"Comments":@{@"text":@"newComment"}}}];