sql >> Databáze >  >> NoSQL >> MongoDB

Jak extrahujete časové razítko z MongoDB ObjectId v Spring Data MongoDB?

Je snadné získat časy z ObjectId ... nicméně nezískáte přesnost ms.

org.bson.types.ObjectId má 2 metody, které můžete použít:getTimeSecond() a getTime() (stejné jako `getTimeSecond() * 1000L ). Získáte tak unixové časové razítko.

Nepoužil jsem MongoDB se Springem - ale pokud můžete získat skutečné ObjectId instance je stejně jednoduchá jako volání jedné z výše uvedených metod.

Nyní – pro dotazování na dokumenty v časovém rozsahu se musíte vrátit zpět a vytvořit ObjectId objekty založené na časovém razítku. Opět - to je jednoduché - ObjectId má konstruktor, který to může udělat za vás:

ObjectId(Date time)

Takže - vytvořte 2 ObjectId instance, které představují vaše minimální a maximální časové hranice, pak provedou dotaz jako:

db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );

kde value1 a value2 představují ObjectId instance, kterou jste vytvořili pomocí ObjectId(Date time)



  1. Mongodb Agregation framework group a sort

  2. jak připojit mongoDB k serveru?

  3. Přidejte volitelný parametr dotazu pomocí úložiště jarních dat mongodb

  4. 6 nejlepších technik optimalizace práce MapReduce