エラーメッセージには、考慮する必要のある重要な情報が含まれていると思います。
クエリ(またはその一部)をドキュメントに保存しようとしているため、mongo演算子のキーワード($or
など)を含む属性名になります。 、$ne
、$gt
)。 mongoのドキュメントは、実際にはこの正確なシナリオを参照しています
-強調が追加されました
このような場合、Robomongoなどのサードパーティアプリケーションは信頼できません。この問題をmongoシェルで直接デバッグ/テストすることをお勧めします。
私の提案は、予約された演算子キーワードに干渉しないように、エスケープされたバージョンのクエリをドキュメントに保存することです。利用可能なJSON.stringify(my_obj);
を使用できます 部分的なクエリを文字列にエンコードし、後で取得することを選択したときに解析/デコードするには:JSON.parse(escaped_query_string_from_db)