Den streng, du præsenterer, er en mongodb shell-forespørgsel. Denne streng indeholder mongodb shell-specifikke datatyper og er derfor kun brugbar inde i mongodb shell. Du kan ikke analysere eller evaluere disse forespørgsler i et andet (javascript) miljø, fordi de ikke er gyldig JSON. Derfor eval
, eller JSON.parse
ville ikke engang virke på grund af de specifikke datatyper.
Hvis du vil serialisere mongodb-forespørgsler til brug i forskellige miljøer, kan du bruge MongoDB Extended JSON.
https://docs.mongodb.org/v3.0/ reference/mongodb-extended-json/
Dette er standard JSON, som kan indeholde mongodb datatyper. Din forespørgsel vil gerne have dette i MongoDB udvidet JSON.
{
"_id": {
"$oid": "536b07935c89be214c000009"
},
"date": {
"$date": "2012-12-19T06:01:17.171Z"
},
"mail": {
"$regex": "test",
"$options": "i"
}
}
Hvis du vil parse eller evaluere en streng som denne for at sende den videre til node.js mongodb-driveren, skal du bruge et bibliotek til at deserialisere dette til et korrekt Node.js MongoDB Driver-objekt.
Du kan bruge dette bibliotek til at gøre det:
https://www. npmjs.com/package/mongodb-extended-json
Du kan også bruge dette bibliotek i din browser til at bygge forespørgslerne. Eller du kan bygge mongodb-forespørgslerne i hånden.
Jeg er ikke bekendt med plugin / npm-pakke, der vil give dig mulighed for automatisk at konvertere mongodb shell-forespørgsler til MongoDB Extended JSON. Du kan prøve at konvertere dem automatisk ved at implementere nogle af typerne selv (ISODate, ObjectId). Du vil dog aldrig have fuld kompatibilitet mellem mongodb-skallen og mongodb nodejs-driveren, mange metoder har forskellige signaturer og returtyper, markører fungerer anderledes osv...
Der er også dette projekt, et alternativ til den officielt understøttede mongodb nodejs-driver, som forsøger at efterligne skallen lidt mere, hvis du virkelig værdsætter det, men det vil ikke hjælpe dig med din specifikke forespørgsel, du skal stadig konvertere det.
https://docs.mongodb.org/ecosystem/ drivere/node-js/