sql >> Database >  >> NoSQL >> MongoDB

Zoek objecten tussen twee datums MongoDB

Vragen naar een datumbereik (specifieke maand of dag) in het MongoDB Kookboek heeft een zeer goede uitleg over de kwestie, maar hieronder is iets dat ik zelf heb uitgeprobeerd en het lijkt te werken.

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

Op basis van mijn experimenten moet je je datums serialiseren in een formaat dat MongoDB ondersteunt, omdat het volgende ongewenste zoekresultaten gaf.

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

In het tweede voorbeeld werden geen resultaten verwacht, maar werd er toch één behaald. Dit komt omdat er een eenvoudige tekenreeksvergelijking is gemaakt.



  1. Spring Redis-fouthandvat

  2. Hoe komt magento aan de namen van cachesleutels?

  3. mongodb voegt teller toe aan elk opgehaald document

  4. Hadoop InputFormat &soorten InputFormat in MapReduce