now new fechas node.js mongodb isodate

node.js - new - MongoDB+nodejs: ¿cómo consultar campos de ISODate?



new date in mongodb (3)

Puede usar la new Date(''2013-12-12T16:00:00.000Z'') en node.js ;

new es obligatorio, porque Date () ya se usa para devolver la cadena de fecha.

ISODate se concibe en mongodb, puede usarlo en la consola de mongodb, pero puede ser diferente para un lenguaje de programación diferente.

Estoy usando nodejs con el controlador node-mongodb-native ( http://mongodb.github.io/node-mongodb-native/ ).

Tengo documentos con una propiedad de fecha almacenada como tipo ISODate .

A través de nodejs, estoy usando esta consulta:

db.collection("log").find({ localHitDate: { ''$gte'': ''2013-12-12T16:00:00.000Z'', ''$lt'': ''2013-12-12T18:00:00.000Z'' } })

No devuelve nada. Para que funcione, necesito hacer lo siguiente en su lugar:

db.collection("log").find({ localHitDate: { ''$gte'': ISODate(''2013-12-12T16:00:00.000Z''), ''$lt'': ISODate(''2013-12-12T18:00:00.000Z'') } })

Pero ISODate no está reconocido en mi código nodejs.

Entonces, ¿cómo puedo hacer una consulta contra los campos de fechas mongo a través de mi programa nodejs?

Gracias


Puedes usar esto, para mí funcionó perfectamente

//lets require/import the mongodb native drivers. var mongodb = require(''mongodb''); //We need to work with "MongoClient" interface in order to connect to a mongodb server. var MongoClient = mongodb.MongoClient; // Connection URL. This is where your mongodb server is running. var url = ''mongodb://localhost/klevin''; // Use connect method to connect to the Server MongoClient.connect(url, function (err, db) { if (err) { console.log(''Unable to connect to the mongoDB server. Error:'', err); } else { //HURRAY!! We are connected. :) console.log(''Connection established to'', url); // Get the documents collection var collection = db.collection(''frames''); //We have a cursor now with our find criteria var cursor = collection.find({ tv: ''tematv'', date_created: {"$gte": new Date("2015-10-01T00:00:00.000Z") , "$lt": new Date("2017-03-13T16:17:36.470Z") }}); //We need to sort by age descending cursor.sort({_id: -1}); //Limit to max 10 records cursor.limit(50); //Skip specified records. 0 for skipping 0 records. cursor.skip(0); //Lets iterate on the result cursor.each(function (err, doc) { if (err) { console.log(err); } else { console.log(''Fetched:'', doc); if(doc !== null){ } } }); } });


necesitamos usar la nueva Fecha () es la mejor opción para obtener los datos.

db.getCollection(''orders'').aggregate([ { ''$match'': { $and: [ { status: ''UNASSIGNED'' }, { plannedDeliveryDate: { ''$eq'': new Date(''2017-10-09'') } } ] } }, { $lookup: { from: "servicelocations", localField: "serviceLocationId", foreignField: "serviceLocationId", as: "locations" } }, { $unwind: "$locations" }, { "$project": { "accountId": 1, "orderId": 1, "serviceLocationId": 1, "orderDate": 1, "description": 1, "serviceType": 1, "orderSource": 1, "takenBy": 1, "plannedDeliveryDate": 1, "plannedDeliveryTime": 1, "actualDeliveryDate": 1, "actualDeliveryTime": 1, "deliveredBy": 1, "size1": 1, "size2": 1, "size3": 1, "jobPriority": 1, "cancelReason": 1, "cancelDate": 1, "cancelBy": 1, "reasonCode": 1, "reasonText": 1, "status": 1, "lineItems": 1, "locations": { "lng": "$locations.location.lng", "lat": "$locations.location.lat" } } } ])