PHP MongoDB – 不推荐使用不带游标选项的aggregate命令.什么?
我已经更新了mongo,现在在日志中出现以下错误:
不建议使用不带游标选项的aggregate命令 Mongo说我应该把第二个REQUIRED参数聚合到聚合函数,因为我的当前用法已被弃用. 我目前使用以下代码PHP(现已弃用): $this->db->{$collection}->aggregate($options); 并返回以下格式: {"result":[ { "_id":"xxxxxx","update":[ { "firstUpdateTime":xxxxxx,"updateTime":xxxxxxx,} ],"media":[ { "xxxx":{ ... 为了不使用已弃用的代码,我添加了新的第二个参数(但我不明白要放什么): $this->db->{$collection}->aggregate($options,array('cursor' => array('batchSize' => 101))); 这会返回相同的信息,但会改变初始结构: {"cursor":{ "id":{ "value":"xxxxxx" },"ns":"xxxxxx.instagram","firstBatch":[ { "_id":"xxxxxx","update":[ { "firstUpdateTime":xxxxxx,"updateTime":xxxxxx,} ],"media":[ { "xxxxxx":{ ... 更新后,Mongo强迫我改变我读取数据的方式. 我应该在第二个参数中加入什么? 文档: 更新: 如果我在函数中指示光标我不再收到错误. 为什么?
当您向MongoDB查询某些内容并希望得到结果时,您将拥有一个名为cursor的变量,它只是指向您当前读取的文档的指针.它就像浏览器中的滚动条.
您可以像使用值1一样指定应将多少个文档读入缓冲区batchSize. 当您知道希望阅读的文档数量时,它非常有用.当您只需要10个文档时,可以使用batchSize =>获取单个网络数据包中的所有文档. 10.指定batchSize =>时5,它需要更长的时间,因为它需要两个网络数据包到数据库来获得预期的10个文件. 使用默认的batchSize是安全的. 您可以尝试使用foreach迭代游标,就像docs:http://php.net/manual/en/class.mongocommandcursor.php中的示例一样 我不确定php.net文档是否与最新版本的MongoDB驱动程序是最新的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |