如何在猫鼬中获取特定日期的数据?

时间:2020-07-24 03:57:25

标签: node.js mongodb express mongoose

如何在猫鼬中获取特定日期的数据?

const orderSchema = new Schema({
  foods: [
    {
      food: { type: Object, required: true },
      quantity: { type: Number, required: true }
    }
  ],
 
  shopId:{
    type: Schema.Types.ObjectId,
    required: true,
  }

},{ timestamps: { createdAt: 'created_at' } });

我尝试了以下方法,但是它不起作用

const dat=new Date(2020,07,23);
  const ndat=new Date(2020,07,24);
  const sid=req.shop._id;
  Order.find({shopId:sid,created_at: {$gte: dat, $lt: ndat}})
  .then(data=>{
    res.send(data);
  })

我需要获取特定日期的订单详细信息。

2 个答案:

答案 0 :(得分:1)

似乎您有语法错误:

const dat=new Date(2020,07,23);
  const ndat=new Date(2020,07,24);
  const sid=req.shop._id;
  Order.find({shopId:sid,created_at: {"$gte": dat, "$lt": ndat}})
  .then(data=>{
    res.send(data);
  })

这也可以

  const sid=req.shop._id;
  Order.find({shopId:sid,created_at: {"$gte": new Date(2020,07,23), "$lt": new Date(2020,07,24)}})
  .then(data=>{
    res.send(data);
  })

答案 1 :(得分:0)

MongoDB存储时间戳,而不存储日期。确保将传递的日期转换为涵盖订单的时间戳,并确保您的订单具有您认为具有的创建时间戳。

使用mongo shell来查找数据库中实际存储的内容,并先在mongo shell中运行查询,然后再尝试在应用程序中进行查询。