如何在 MongoDB 中找到在指定日期之前建立的所有物件?


你可以使用 $lt 運算子來實現此目的。讓我們建立一個包含文件的集合 -

> db.beforeSpecifyDateDemo.insertOne({"UserLoginDate":new ISODate('2016-03-21')});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cbd91e4de8cc557214c0e0d")
}
> db.beforeSpecifyDateDemo.insertOne({"UserLoginDate":new ISODate('2016-05-11')});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cbd91ecde8cc557214c0e0e")
}
> db.beforeSpecifyDateDemo.insertOne({"UserLoginDate":new ISODate('2017-01-31')});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cbd91f9de8cc557214c0e0f")
}
> db.beforeSpecifyDateDemo.insertOne({"UserLoginDate":new ISODate('2018-05-15')});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cbd9206de8cc557214c0e10")
}
> db.beforeSpecifyDateDemo.insertOne({"UserLoginDate":new ISODate('2019-04-01')});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cbd9211de8cc557214c0e11")
}

使用 find() 方法顯示集合中的所有文件。查詢如下 -

> db.beforeSpecifyDateDemo.find().pretty();

這將產生以下輸出 -

{
   "_id" : ObjectId("5cbd91e4de8cc557214c0e0d"),
   "UserLoginDate" : ISODate("2016-03-21T00:00:00Z")
}
{
   "_id" : ObjectId("5cbd91ecde8cc557214c0e0e"),
   "UserLoginDate" : ISODate("2016-05-11T00:00:00Z")
}
{
   "_id" : ObjectId("5cbd91f9de8cc557214c0e0f"),
   "UserLoginDate" : ISODate("2017-01-31T00:00:00Z")
}
{
   "_id" : ObjectId("5cbd9206de8cc557214c0e10"),
   "UserLoginDate" : ISODate("2018-05-15T00:00:00Z")
}
{
   "_id" : ObjectId("5cbd9211de8cc557214c0e11"),
   "UserLoginDate" : ISODate("2019-04-01T00:00:00Z")
}

以下是查詢在指定日期之前建立的所有物件的查詢 -

> db.beforeSpecifyDateDemo.find({UserLoginDate: { "$lt": ISODate("2017-01-31") }});

這將產生以下輸出 -

{ "_id" : ObjectId("5cbd91e4de8cc557214c0e0d"), "UserLoginDate" : ISODate("2016-03-21T00:00:00Z") }
{ "_id" : ObjectId("5cbd91ecde8cc557214c0e0e"), "UserLoginDate" : ISODate("2016-05-11T00:00:00Z") }

更新於: 30-7 月-2019

526 瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告