sql >> Databáze >  >> NoSQL >> MongoDB

Eval MongoDB Query s NodeJS

Ř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/




  1. Výjimka při připojování k mongodb ve sparku

  2. Mongoose agregátní vyhledávání - Jak filtrovat podle konkrétního ID

  3. Implementace stránkování v mongodb

  4. Jak seskupovat pomocí MongoDB