복붙노트

[MONGODB] MongoDB를 +는 nodejs : ISODate 필드를 쿼리하는 방법?

MONGODB

MongoDB를 +는 nodejs : ISODate 필드를 쿼리하는 방법?

나는 노드 MongoDB의 네이티브 드라이버 (http://mongodb.github.io/node-mongodb-native/)와 nodejs를 사용하고 있습니다.

나는 ISODate 형식으로 저장된 날짜 속성을 가진 문서가 있습니다.

nodejs을 통해,이 쿼리를 사용하고 있습니다 :

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

그것은 아무 것도 반환하지 않습니다. 그것은 내가 대신 다음을 수행해야 작동하게하려면 :

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

그러나 ISODate 내 nodejs 코드에서 인식되지 않습니다.

어떻게 내 노드 JS 프로그램을 통해 MongoDB의 날짜 필드에 대해 쿼리를 만들 수 있습니까?

감사합니다

해결법

  1. ==============================

    1.당신은 새로운 날짜 사용할 수 있습니다 ( ': 00 : 2013-12-12T16를 00.000Z') Node.js를에;

    당신은 새로운 날짜 사용할 수 있습니다 ( ': 00 : 2013-12-12T16를 00.000Z') Node.js를에;

    날짜 () 이미 반환 날짜 문자열에 사용되기 때문에 새가 필수입니다.

    ISODate가 MongoDB를에 concepted, 당신은 MongoDB를 콘솔에서 사용할 수 있지만, 다른 프로그래밍 언어에 대한 다를 수 있습니다.

  2. ==============================

    2.나를 완벽하게 일을 위해 당신은이를 사용할 수 있습니다

    나를 완벽하게 일을 위해 당신은이를 사용할 수 있습니다

    //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){ 
    
            }
    
          }
        });
    
    
      }
    
    });
    
  3. ==============================

    3.우리는 () 데이터를 얻을 수있는 최선의 방법입니다 새 날짜를 사용해야합니다.

    우리는 () 데이터를 얻을 수있는 최선의 방법입니다 새 날짜를 사용해야합니다.

    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"
          }
        }
      }
    ])
    
  4. from https://stackoverflow.com/questions/20561381/mongodb-nodejs-how-to-query-isodate-fields by cc-by-sa and MIT license