Domanda

È possibile eseguire query di confronto $gt, $lt, ecc. Di un Date contro un ObjectId e viceversa?Il driver mongodb ha lanciato automaticamente questo?Questo server mongodb illustra automaticamente questo?

È stato utile?

Soluzione

Sì e no.

È possibile sotto i metodi basati su JavaScript per ottenere una data dal valore dell'oggetto in cui è possibile utilizzare per i confronti.Dovrebbe inoltre essere possibile costruire un oggetto dato un valore specifico, ma non vedendo l'utilità di questo.Ma tutti sono validi ed essenzialmente per data:

ObjectId("53473d87cb495e216c982929") > ObjectId("53473e57cb495e216c98292a")

ObjectId("53473d87cb495e216c982929").getTimestamp() >
ObjectId("53473e57cb495e216c98292a").getTimestamp()

ObjectId("53473d87cb495e216c982929").getTimestamp() >
ISODate("2014-04-11T00:55:35Z")    
.

Quindi forme come questo funzionerà, anche se davvero non è così grande una dichiarazione:

db.collection.find({ 
    "$where": function() {
         return this._id.getTimestamp() > new Date("2014-01-01");
    }
}
.

Per quanto riguarda la "creazione" dei _id, vengono eseguiti nel "driver" o in modo esplicito dall'utente, o se ancora omesso il server genererà uno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top