Řetězec, který prezentujete, je dotaz prostředí mongodb. Tento řetězec obsahuje datové typy specifické pro prostředí mongodb a jako takový je použitelný pouze v prostředí mongodb. Tyto dotazy nemůžete analyzovat ani vyhodnocovat v jiném (javascriptovém) prostředí, protože nejsou platný JSON. Proto eval
nebo JSON.parse
by ani nefungovalo, kvůli specifickým datovým typům.
Pokud chcete serializovat dotazy mongodb pro použití v různých prostředích, můžete použít MongoDB Extended JSON.
https://docs.mongodb.org/v3.0/ reference/mongodb-extended-json/
Toto je standardní JSON, který může obsahovat datové typy mongodb. Váš dotaz by chtěl toto v rozšířeném JSON MongoDB.
{
"_id": {
"$oid": "536b07935c89be214c000009"
},
"date": {
"$date": "2012-12-19T06:01:17.171Z"
},
"mail": {
"$regex": "test",
"$options": "i"
}
}
Pokud chcete analyzovat nebo vyhodnotit řetězec, jako je tento, a předat jej ovladači node.js mongodb, budete muset použít knihovnu k deserializaci na správný objekt ovladače Node.js MongoDB Driver.
K tomu můžete použít tuto knihovnu:
https://www. npmjs.com/package/mongodb-extended-json
Tuto knihovnu můžete také použít ve svém prohlížeči k sestavení dotazů. Nebo můžete dotazy mongodb vytvořit ručně.
Nejsem si vědom balíčku plugin / npm, který by vám umožnil automaticky převést dotazy prostředí mongodb na MongoDB Extended JSON. Můžete se pokusit je převést automaticky implementací některých typů sami ( ISODate, ObjectId ). Nikdy však nebudete mít plnou kompatibilitu mezi mongodb shellem a ovladačem mongodb nodejs, mnoho metod má různé signatury a návratové typy, kurzory fungují jinak atd...
Existuje také tento projekt, alternativa k oficiálně podporovanému ovladači mongodb nodejs, který se snaží napodobit shell trochu více, pokud si toho opravdu ceníte, ale nepomůže vám s vaším konkrétním dotazem, stále budete muset převést it.
https://docs.mongodb.org/ecosystem/ ovladače/node-js/