mongo を更新したところ、ログに次のエラーが表示されました: Use of the aggregate command without the cursor option is deprecated
Mongo は、現在の使用法が推奨されていないため、集約関数に 2 つ目の REQUIRED パラメータを追加する必要があると言っています。
現在、次のコードPHPを使用しています(現在は非推奨です):
$this->db->{$collection}->aggregate($options);
そして、この形式を返します:
{"result":[
{
"_id":"xxxxxx",
"update":[
{
"firstUpdateTime":xxxxxx,
"updateTime":xxxxxxx,
}
],
"media":[
{
"xxxx":{ ...
非推奨のコードを使用しないために、新しい 2 番目のパラメーターを追加します (ただし、何を入力すればよいかわかりません)。
$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 はデータの読み取り方法を変更するよう強制します。「cursor」という 2 番目のパラメーターにどの値を入力すればよいかわかりません...
その 2 番目のパラメーターには何を入力すればよいですか? 結果の構造を変更せずにデフォルト値を設定できますか?
ドキュメント: https://docs.mongodb.com/manual/reference/method/db.collection.aggregate/ http://php.net/manual/es/mongocollection.aggregate.php
アップデート:
関数でカーソルを指定すると、エラーが発生しなくなりました。しかし、解決策に適用せずにログを読むと、警告がランダムに表示されます。コードを数回実行すると、前述の警告が報告され、他の警告が報告されない場合があります。
なんで?