Mongodb

Mongoose 未在結果中顯示 ISODate

  • September 2, 2020

我正在使用 mongodb 版本4.2.2

我有以下數據:

{
   "_id" : ObjectId("5f0c58089c058304f7a64fa9"),
   "date" : ISODate("2021-07-11T00:00:00.000Z"),
   "dayOfWeek" : 0,
   "staffMember" : ObjectId("5f0c58076b559419d62efe47"),
   "startTime" : 885
},

/* 2 createdAt:2020-07-13T12:48:08.000Z*/
{
   "_id" : ObjectId("5f0c58089c058304f7a64fa8"),
   "date" : ISODate("2021-07-11T00:00:00.000Z"),
   "dayOfWeek" : 0,
   "staffMember" : ObjectId("5f0c58076b559419d62efe47"),
   "startTime" : 870
},

/* 3 createdAt:2020-07-13T12:48:08.000Z*/
{
   "_id" : ObjectId("5f0c58089c058304f7a64fa7"),
   "date" : ISODate("2021-07-11T00:00:00.000Z"),
   "dayOfWeek" : 0,
   "staffMember" : ObjectId("5f0c58076b559419d62efe47"),
   "startTime" : 855
},

/* 4 createdAt:2020-07-13T12:48:08.000Z*/
{
   "_id" : ObjectId("5f0c58089c058304f7a64fa6"),
   "date" : ISODate("2021-07-11T00:00:00.000Z"),
   "dayOfWeek" : 0,
   "staffMember" : ObjectId("5f0c58076b559419d62efe47"),
   "startTime" : 840
}

mongoose在我的項目中使用。當我在節點 js 中執行此查詢時:

const { memberId, date } = req.params;
let isoDate = date.toISOString();
let timeSlots = await TimeSlots.find(
{
 staffMember: memberId,
 date: isoDate 
});

結果列印在console

db.spaTimeSlots.find({"staffMember" : ObjectId("5f0c58076b559419d62efe47"), date: new Date("Wed, 11 Jul 2020 00:00:00 GMT")})
  .projection({})
  .sort({_id:-1})
  .limit(100)

但是,我想要這個結果:

db.spaTimeSlots.find({"staffMember" : ObjectId("5f0c58076b559419d62efe47"), date: ISODate("2021-07-11T00:00:00.000Z")})
  .projection({})
  .sort({_id:-1})
  .limit(100)

我希望以ISODate格式返回的結果,而不是文本(即不是Wed, 11 Jul)。

您需要像這樣添加:

let date = new Date().toISOString();
let isoDate = new Date(date);

希望它有效。

ISODate是一個mongoshell類型,它在Node中不存在。

Date您可以在應用程序中以任何您希望的方式格式化 JS對象。

引用自:https://dba.stackexchange.com/questions/270925