Prezentowany ciąg jest zapytaniem powłoki mongodb.Ten ciąg zawiera typy danych specyficzne dla powłoki mongodb i jako taki może być używany tylko w powłoce mongodb.Nie można analizować ani oceniać tych zapytań w innym środowisku (javascript), ponieważ nie są prawidłowy JSON. Stąd eval
lub JSON.parse
nawet nie zadziała, ze względu na specyficzne typy danych.
Jeśli chcesz serializować zapytania mongodb do użycia w różnych środowiskach, możesz użyć MongoDB Extended JSON.
https://docs.mongodb.org/v3.0/ reference/mongodb-extended-json/
To jest standardowy JSON, który może zawierać typy danych mongodb. Twoje zapytanie powinno wyglądać w rozszerzonym JSON MongoDB.
{
"_id": {
"$oid": "536b07935c89be214c000009"
},
"date": {
"$date": "2012-12-19T06:01:17.171Z"
},
"mail": {
"$regex": "test",
"$options": "i"
}
}
Jeśli chcesz przeanalizować lub ocenić taki ciąg znaków, aby przekazać go do sterownika mongodb node.js, musisz użyć biblioteki, aby zdeserializować go do odpowiedniego obiektu sterownika Node.js MongoDB.
Możesz użyć tej biblioteki, aby to zrobić:
https://www. npmjs.com/package/mongodb-extended-json
Możesz również użyć tej biblioteki w swojej przeglądarce do tworzenia zapytań. Możesz też ręcznie tworzyć zapytania mongodb.
Nie znam pakietu plugin/npm, który umożliwiałby automatyczną konwersję zapytań powłoki mongodb do MongoDB Extended JSON. Możesz spróbować przekonwertować je automatycznie, implementując niektóre typy samodzielnie ( ISODate, ObjectId ). Jednak nigdy nie będziesz mieć pełnej kompatybilności między powłoką mongodb a sterownikiem mongodb nodejs, wiele metod ma różne sygnatury i typy zwracane, kursory działają inaczej, itd...
Istnieje również ten projekt, alternatywa dla oficjalnie obsługiwanego sterownika mongodb nodejs, który próbuje nieco bardziej naśladować powłokę, jeśli naprawdę to cenisz, ale nie pomoże ci w konkretnym zapytaniu, nadal będziesz musiał przekonwertować to.
https://docs.mongodb.org/ecosystem/ sterowniki/node-js/