Jag tror att felmeddelandet innehåller den viktiga informationen du behöver tänka på:
Eftersom du försöker lagra en fråga (eller en del av en) i ett dokument, kommer du att få attributnamn som innehåller mongo-operatörsnyckelord (som $or
, $ne
, $gt
). Mongodokumentationen hänvisar faktiskt till detta exakta scenario
- betoning tillagd
Jag skulle inte lita på tredjepartsapplikationer som Robomongo i dessa fall. Jag föreslår att du felsöker/testar det här problemet direkt i mongo-skalet.
Mitt förslag skulle vara att lagra en escaped version av frågan i ditt dokument för att inte störa reserverade operatörsnyckelord. Du kan använda den tillgängliga JSON.stringify(my_obj);
för att koda din delfråga till en sträng och sedan analysera/avkoda den när du väljer att hämta den senare:JSON.parse(escaped_query_string_from_db)