Myślę, że komunikat o błędzie zawiera ważne informacje, które należy wziąć pod uwagę:
Ponieważ próbujesz przechowywać zapytanie (lub jego część) w dokumencie, otrzymasz nazwy atrybutów zawierające słowa kluczowe operatora mongo (takie jak $or
, $ne
, $gt
). Dokumentacja mongo faktycznie odnosi się do tego dokładnego scenariusza
- dodano podkreślenie
W takich przypadkach nie ufałbym aplikacjom innych firm, takim jak Robomongo. Sugeruję debugowanie/testowanie tego problemu bezpośrednio w powłoce mongo.
Moja sugestia to przechowywanie w dokumencie wersji zapytania ze znakami ucieczki, aby nie kolidować ze słowami kluczowymi z operatorami zastrzeżonymi. Możesz użyć dostępnego JSON.stringify(my_obj);
aby zakodować zapytanie częściowe do ciągu, a następnie przeanalizować/odkodować je, gdy zdecydujesz się je później pobrać:JSON.parse(escaped_query_string_from_db)