Le pilote Mongo de PHP n'a pas de fonction renameCommand. There is reference pour ce faire via la base de données d'administration. Mais il semble que des versions plus récentes du pilote Mongo ne vous permettent pas simplement "d'utiliser" la base de données d'administration si vous n'avez pas de privilèges de connexion sur cette base de données. Donc, cette méthode ne fonctionne plus. J'ai aussi lu que cela ne fonctionne pas dans les environnements partagés, bien que ce ne soit pas une préoccupation pour moi actuellement.Renommer une collection Mongo en PHP
L'autre suggestion que les gens semblent avoir est d'itérer à travers la collection "from" et d'insérer dans la collection "to". Avec le bon WriteConcern (fire and forget) cela pourrait être assez rapide. Mais cela signifie tout de même que chaque enregistrement sur le réseau sera transféré dans le processus PHP, puis transféré de nouveau sur le réseau dans la base de données.
Je veux idéalement un moyen de le faire tous côté serveur. Un peu comme un INSERT INTO ... SELECT ... dans SQL. De cette façon, il est rapide, efficace sur le réseau et faible charge sur PHP.
MR va changer la structure du document entre les deux collections, et vous devriez être en mesure de « utiliser » la base de données admin si vous avez le droit auth – Sammaye
Oui, je me suis aperçu que je posté prématurément que je ne l'ai pas remarqué le changement de structure. J'essaie actuellement de comprendre comment je peux faire une carte/réduire sans réduire la partie. –
Ce n'est pas un problème avec la réduction mais fondamentalement, en interne, comment MongoDB forme les documents résultants et les écrit. En fait, vous ne devriez jamais exécuter la réduction puisque vous ne devez retourner qu'une clé par document et que MongoDBs ne s'exécute pas dans ce cas. – Sammaye