2012-09-02 3 views
0

Pour ceux qui veulent interroger pour timestamp comment vous ici faire:horodatage avec mongoskin comment?

> db.foo.find() 
{ "_id" : ObjectId("4e43a21d84782019413162ed"), "a" : { "t" : 1313055261000, "i" : 1 } } 
> db.foo.find({'a': {'$gte': new Timestamp(new Date(2011, 8-1, 11), 0) } }) 
{ "_id" : ObjectId("4e43a21d84782019413162ed"), "a" : { "t" : 1313055261000, "i" : 1 } } 
> db.foo.find({'a': {'$gte': new Timestamp(new Date(2011, 8-1, 12), 0) } }) 

je trouve cet exemple dans la page de MongoDB ... mais si je veux insérer un horodatage dans MongoDB en utilisant mongoskin suivant l'exemple ?? ?

i essayez ceci:

db.collection('times').insert({time: new Timestamp(new Date('2012-08-06'),0)}) 

c'est l'erreur:

ReferenceError: Timestamp is not defined 

Répondre

1

Eh bien, c'est parce que Timestamp n'est pas défini. Ce n'est ni une partie de JavaScript ni de Node. Vous devriez le définir avant de l'utiliser. Cela devrait fonctionner:

var mongoskin = require('mongoskin'); 
var Timestamp = mongoskin.BSONPure.Timestamp; 

Notez que ce Timestamp s sont pour internal db use only; Pourquoi en avez-vous besoin, lorsqu'il y a Date.now() et new Date().getTime()? De toute façon, voici un lien avec plus de détails - http://mongodb.github.com/node-mongodb-native/api-bson-generated/timestamp.html.

+0

parce que j'ai besoin de chercher des documents par date() ... il y a de toute façon de mettre une nouvelle date() et une recherche par date par exemple: documents plus récents que 2012-09-01 – andrescabana86

+2

@ andrescabana86, oui, vous pouvez ' db.collection.find ({date: {$ gt: d}}) ', où' d' est un 'Date'. Vous pouvez également utiliser les horodatages (pas ceux de Mongo, mais ceux retournés par 'Date(). GetTime()'). – elmigranto

+0

thx tellement ... réponse utile – andrescabana86

Questions connexes