我已经更新了mongo,现在在日志中出现以下错误:
不建议使用不带游标选项的aggregate命令
不建议使用不带游标选项的aggregate命令
Mongo说我应该把第二个required参数聚合到聚合函数,因为我的当前用法已被弃用.
$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强迫我改变我读取数据的方式.
我不明白我应该把第二个参数叫做“游标”…
我应该在第二个参数中加入什么?
我可以在不改变结果结构的情况下设置默认值吗?
文档:
https://docs.mongodb.com/manual/reference/method/db.collection.aggregate/
http://php.net/manual/es/mongocollection.aggregate.php
更新:
如果我在函数中指示光标我不再收到错误.
但是,如果没有应用解决方案,我会阅读LOG并随机出现警告,我有一个代码,我运行了几次,有时如果它报告上述警告而其他人没有.
为什么?
当您向MongoDB查询某些内容并希望得到结果时,您将拥有一个名为cursor的变量,它只是指向您当前读取的文档的指针.它就像浏览器中的滚动条.
原文链接:https://www.f2er.com/php/137432.html您可以像使用值1一样指定应将多少个文档读入缓冲区batchSize.
当您知道希望阅读的文档数量时,它非常有用.当您只需要10个文档时,可以使用batchSize =>获取单个网络数据包中的所有文档. 10.指定batchSize =>时5,它需要更长的时间,因为它需要两个网络数据包到数据库来获得预期的10个文件.
使用默认的batchSize是安全的.
您可以尝试使用foreach迭代游标,就像docs:http://php.net/manual/en/class.mongocommandcursor.php中的示例一样
我不确定PHP.net文档是否与最新版本的MongoDB驱动程序是最新的.