如何编写过滤器,这会产生今天创建的文档。我知道ObjectId有时间戳。 我试过这个:
db.doc.find({_id : { $gte : ObjectId().getTimestamp().getTime() }}
我可以写
吗?db.doc.find({'_id.getTimestamp().getTime()' : { $gte : ObjectId().getTimestamp().getTime() }}
答案 0 :(得分:7)
尝试以下内容(基于此answer)。这将返回自给定日期以来创建的所有文档。所以它也涵盖了今天的条目。
db.doc.find({_id : { $gt : ObjectId(Math.floor(new Date('2014/01/30')/1000).toString(16)+"0000000000000000") }})
如果您不想将日期作为字符串输入,可以通过对象创建它,但它有点难看:
db.doc.find({_id : { $gt : ObjectId(Math.floor(new Date(new Date().getFullYear()+'/'+(new Date().getMonth()+1)+'/'+new Date().getDate())/1000).toString(16)+"0000000000000000") }})