MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Намерете обекти между две дати MongoDB

Запитване за период от време (Конкретен месец или ден) в Готварска книга MongoDB има много добро обяснение по въпроса, но по-долу е нещо, което изпробвах лично и изглежда работи.

items.save({
    name: "example",
    created_at: ISODate("2010-04-30T00:00:00.000Z")
})
items.find({
    created_at: {
        $gte: ISODate("2010-04-29T00:00:00.000Z"),
        $lt: ISODate("2010-05-01T00:00:00.000Z")
    }
})
=> { "_id" : ObjectId("4c0791e2b9ec877893f3363b"), "name" : "example", "created_at" : "Sun May 30 2010 00:00:00 GMT+0300 (EEST)" }

Въз основа на моите експерименти ще трябва да сериализирате вашите дати във формат, който MongoDB поддържа, тъй като следното даде нежелани резултати от търсене.

items.save({
    name: "example",
    created_at: "Sun May 30 18.49:00 +0000 2010"
})
items.find({
    created_at: {
        $gte:"Mon May 30 18:47:00 +0000 2015",
        $lt: "Sun May 30 20:40:36 +0000 2010"
    }
})
=> { "_id" : ObjectId("4c079123b9ec877893f33638"), "name" : "example", "created_at" : "Sun May 30 18.49:00 +0000 2010" }

Във втория пример не се очакваха резултати, но все пак имаше такъв. Това е така, защото се прави основно сравнение на низове.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb v4.0 Transaction, MongoError:Номера на транзакции са разрешени само за член на набор от реплика или mongos

  2. Вземете най-новия запис на MongoDB по поле за дата и час

  3. Импортирайте csv данни като масив в mongodb, като използвате mongoimport

  4. Как да генерирате уникален идентификатор на обект в mongodb

  5. MongoDB elemmatch множество елементи в масива