为了账号安全,请及时绑定邮箱和手机立即绑定

mongoose新手,内嵌文档时间类型如何查询

/ 猿问

mongoose新手,内嵌文档时间类型如何查询

醉生梦死012 2017-03-02 14:09:29

跟着教程做了一个node.js+mongodb的站点,其中在Schema中对集合的定义如下:

var JobSchema = new mongoose.Schema({
    jobtype:String,
    title:String,
    content:String,
    meta:{
        createAt:{
            type:Date,
            default:Date.now()
        },
        updateAt:{
            type:Date,
            default:Date.now()
        }
    }
})

在statics中,调用数据库的方法如下:

JobSchema.statics = {
    //fetch用于取出数据库中所有数据
    //findById用于根据id取出单条数据
    fetch: function(cb){
        return this
        .find({})
        .sort('meta.updateAt')
        .exec(cb)
    },
    findById:function(id, cb){
        return this
        .findOne({_id:id})
        .exec(cb)
    }
}

但如果想根据updateAt或createAt的时间段来查询,不知道应该如何写

以下是我试着写的,但不能查出结果,也没有错误提示信息,只是返回值为空

findByDate:function(dates, cb){
    return this
    .find({meta:{updateAt:{$gte:dates}}})
    .sort('meta.updateAt')
    .exec(cb)
}


查看完整描述

1 回答

?
醉生梦死012

在Mongodb Shell下查询db.jobs.find(),返回结果如下:

{ "_id" : ObjectId("58b504e7a5c3412824649bb7"), "jobtype" : "语文", "title" : "哈哈", "content" : "手机可以访问了", "meta" : { "updateAt" : ISODate("2017-02-28T05:04:39.693Z"), "createAt" : ISODate("2017-02-28T05:04:39.693Z") }, "__v" : 0}
{ "_id" : ObjectId("58b66c88e6673524048a6772"), "jobtype" : "语文", "title" : "今日作业", "content" : "哇咔咔咔", "meta" : { "updateAt" : ISODate("2017-03-01T06:39:04.517Z"), "createAt" : ISODate("2017-03-01T06:39:04.517Z") }, "__v" : 0 }


查看完整回答
反对 回复 2017-03-02

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信