2012-09-02 24 views
0

對於那些誰想要在這裏查詢時間戳是你如何做到這一點:mongoskin的時間戳如何?

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

我發現MongoDB的頁面,例如......但如果我想插入使用mongoskin下面的例子MongoDB的時間戳? ?

我試試這個:

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

這是錯誤:

ReferenceError: Timestamp is not defined 

回答

1

嗯,這是因爲Timestamp沒有定義。它既不是JavaScript的一部分也不是Node的一部分。你應該在使用前定義它。這應該工作:

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

注意,這Timestamp s爲爲internal db use only;爲什麼你需要他們,當有Date.now()new Date().getTime()

無論如何,這裏是一個鏈接的一些更多的細節 - http://mongodb.github.com/node-mongodb-native/api-bson-generated/timestamp.html

+0

因爲我需要通過日期搜索文檔()...有無論如何把新的日期()和日期搜索例如:文件比2012-09-01更新 – andrescabana86

+2

@ andrescabana86,是的,你可以' db.collection.find({date:{$ gt:d}})',其中'd'是任何'Date'。你也可以使用時間戳(不是在Mongo中的,而是由Date()。getTime()')返回的。 – elmigranto

+0

thx這麼多...有用的答案 – andrescabana86