sql >> Database >  >> NoSQL >> MongoDB

Eval MongoDB-query met NodeJS

De string die u presenteert is een mongodb shell-query. Deze string bevat mongodb shell-specifieke datatypes en is als zodanig alleen bruikbaar binnen de mongodb-shell. U kunt deze query's niet ontleden of evalueren in een andere (javascript) omgeving, omdat ze dat niet zijn geldige JSON. Vandaar, eval , of JSON.parse zou niet eens werken, vanwege de specifieke datatypes.

Als u mongodb-query's wilt serialiseren voor gebruik in verschillende omgevingen, kunt u MongoDB Extended JSON gebruiken.

https://docs.mongodb.org/v3.0/ reference/mongodb-extended-json/

Dit is standaard JSON die mongoDB-gegevenstypes kan bevatten. Uw zoekopdracht zou dit graag hebben in MongoDB extended JSON.

{
    "_id": {
        "$oid": "536b07935c89be214c000009"
    },
    "date": {
        "$date": "2012-12-19T06:01:17.171Z"
    },
    "mail": {
        "$regex": "test",
        "$options": "i"
    }
}

Als u een string als deze wilt ontleden of evalueren om deze door te geven aan het node.js mongoDB-stuurprogramma, moet u een bibliotheek gebruiken om dit te deserialiseren naar een correct Node.js MongoDB-stuurprogramma-object.

Je zou deze bibliotheek kunnen gebruiken om dat te doen:
https://www. npmjs.com/package/mongodb-extended-json

U kunt deze bibliotheek ook in uw browser gebruiken om de query's op te bouwen. Of je kunt de mongodb-query's met de hand bouwen.

Ik ben niet op de hoogte van een plug-in / npm-pakket waarmee je mongodb-shell-query's automatisch naar MongoDB Extended JSON kunt converteren. U kunt proberen ze automatisch te converteren door zelf een aantal typen te implementeren ( ISODate, ObjectId ). U zult echter nooit een volledige compatibiliteit hebben tussen de mongodb-shell en het mongodb nodejs-stuurprogramma, veel methoden hebben verschillende handtekeningen en retourtypen, cursors werken anders, enz...

Er is ook dit project, een alternatief voor de officieel ondersteunde mongodb nodejs-driver, die probeert de shell een beetje meer na te bootsen als je dat echt waardeert, maar het zal je niet helpen met je specifieke vraag, je moet nog steeds converteren it.
https://docs.mongodb.org/ecosystem/ drivers/node-js/




  1. Waarom heeft nodejs-mongodb middleware een andere syntaxis dan mongo shell?

  2. Strapi Heroku-implementatie kan geen verbinding maken met MongoDB

  3. Hoe kan ik sorteren dat nulls als laatste in mongodb worden besteld?

  4. upgrade mongodb