MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Znajdź obiekty między dwiema datami MongoDB

Zapytania o zakres dat (określony miesiąc lub dzień) w Książce kucharskiej MongoDB ma bardzo dobre wyjaśnienie w tej sprawie, ale poniżej jest coś, co sam wypróbowałem i wydaje się, że działa.

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)" }

W oparciu o moje eksperymenty będziesz musiał zserializować swoje daty do formatu obsługiwanego przez MongoDB, ponieważ poniższe wyniki dały niepożądane wyniki wyszukiwania.

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" }

W drugim przykładzie nie oczekiwano wyników, ale nadal jeden został osiągnięty. Dzieje się tak, ponieważ wykonywane jest podstawowe porównanie ciągów.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Percona Live Frankfurt 2018 - Podsumowanie wydarzenia i nasze sesje

  2. Jak wywołać db.Collection.stats() ze sterownika Mongo java?

  3. Wewnętrzna tablica sortowania Mongodb

  4. Samouczek dotyczący podstaw MongoDB

  5. Wiele wyrażeń $elemMatch do dopasowywania wartości tablicy przy użyciu $all w MongoDB?