Je pense que le message d'erreur contient les informations importantes dont vous devez tenir compte :
Puisque vous essayez de stocker une requête (ou une partie d'une requête) dans un document, vous vous retrouverez avec des noms d'attributs contenant des mots clés d'opérateur mongo (tels que $or
, $ne
, $gt
). La documentation mongo fait en fait référence à ce scénario exact
- emphase ajoutée
Je ne ferais pas confiance aux applications tierces telles que Robomongo dans ces cas. Je suggère de déboguer/tester ce problème directement dans le shell mongo.
Ma suggestion serait de stocker une version échappée de la requête dans votre document afin de ne pas interférer avec les mots-clés d'opérateur réservés. Vous pouvez utiliser le JSON.stringify(my_obj);
disponible pour encoder votre requête partielle dans une chaîne, puis l'analyser/la décoder lorsque vous choisissez de la récupérer ultérieurement :JSON.parse(escaped_query_string_from_db)