PHPのMongoドライバにはrenameCommand関数がありません。 There is referenceこれは管理データベースを介して行います。しかし、最近のバージョンのMongoドライバは、そのデータベースに対するログイン権限を持っていなければ、単に管理データベースを "使用"することはできません。したがって、この方法はもはや機能しません。私はまた、これは私にとっては現在懸念されていませんが、シャード環境では動作しないことも読んでいます。PHPでMongoコレクションの名前を変更
人々が持っていると思われる他の提案は、「from」コレクションを繰り返して「to」コレクションに挿入することです。適切なWriteConcern(fireとforget)を使用すると、これはかなり高速になる可能性があります。しかし、それは、ネットワーク上の各レコードをPHPプロセスにプルダウンした後、ネットワーク上にアップロードしてデータベースに戻すことを意味します。
私は理想的にはすべてのサーバー側でそれを行う方法が欲しいです。 SQLのINSERT INTO ... SELECT ...のような並べ替え。これにより、高速でネットワーク効率がよく、PHPに負荷がかかりません。
MRは、2つの収集の間の文書の構造を変更します、とあなたは右の認証 – Sammaye
いやを持っている場合、管理データベースを「使用」することができるはず、私は気付かなかったとして、私は途中でこの投稿を実現しました構造が変化する。私は現在、削減部分なしでマップ/リダクションをどのように行うことができるかを把握しようとしています。 –
MongoDBが結果として得られる文書をどのように作成して書き出すのかは、基本的には削減されているが、内部的には問題ではありません。実際には、ドキュメントごとに1つのキーだけを返すべきであり、MongoDBsの削減はそのようなケースでは実行されないので、reduceを実行するべきではありません。 – Sammaye