查詢 MongoDB 集合中最舊/最年輕的帖子?


要查詢 MongoDB 集合中最舊/最年輕的帖子,可以使用 sort()。假設你有一個文件,其中有一個欄位“UserPostDate”,你需要獲取最舊和最年輕的帖子。為此,我們首先建立一個包含文件的集合

>db.getOldestAndYoungestPostDemo.insertOne({"UserId":"Larry@123","UserName":"Larry","UserPostDate":new ISODate('2019-03-27 12:00:00')});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9a700f15e86fd1496b38ab")
}
>db.getOldestAndYoungestPostDemo.insertOne({"UserId":"Sam@897","UserName":"Sam","UserPostDate":new ISODate('2012-06-17 11:40:30')});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9a703815e86fd1496b38ac")
}
>db.getOldestAndYoungestPostDemo.insertOne({"UserId":"David@777","UserName":"David","UserPostDate":new ISODate('2018-01-31 10:45:35')});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9a705e15e86fd1496b38ad")
}
>db.getOldestAndYoungestPostDemo.insertOne({"UserId":"Chris@909","UserName":"Chris","UserPostDate":new ISODate('2017-04-14 04:12:04')});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9a708915e86fd1496b38ae")
}

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

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

這將產生以下輸出

{
   "_id" : ObjectId("5c9a700f15e86fd1496b38ab"),
   "UserId" : "Larry@123",
   "UserName" : "Larry",
   "UserPostDate" : ISODate("2019-03-27T12:00:00Z")
}
{
   "_id" : ObjectId("5c9a703815e86fd1496b38ac"),
   "UserId" : "Sam@897",
   "UserName" : "Sam",
   "UserPostDate" : ISODate("2012-06-17T11:40:30Z")
}
{
   "_id" : ObjectId("5c9a705e15e86fd1496b38ad"),
   "UserId" : "David@777",
   "UserName" : "David",
   "UserPostDate" : ISODate("2018-01-31T10:45:35Z")
}
{
   "_id" : ObjectId("5c9a708915e86fd1496b38ae"),
   "UserId" : "Chris@909",
   "UserName" : "Chris",
   "UserPostDate" : ISODate("2017-04-14T04:12:04Z")
}

以下是查詢 MongoDB 集合中最舊帖子的查詢

> db.getOldestAndYoungestPostDemo.find().sort({ "UserPostDate" : 1 }).limit(1);

這將產生以下輸出

{ "_id" : ObjectId("5c9a703815e86fd1496b38ac"), "UserId" : "Sam@897", "UserName" : "Sam", "UserPostDate" : ISODate("2012-06-17T11:40:30Z") }

以下是查詢 MongoDB 集合中最年輕(最新)帖子的查詢

> db.getOldestAndYoungestPostDemo.find().sort({ "UserPostDate" : -1 }).limit(1);

這將產生以下輸出

{ "_id" : ObjectId("5c9a700f15e86fd1496b38ab"), "UserId" : "Larry@123", "UserName" : "Larry", "UserPostDate" : ISODate("2019-03-27T12:00:00Z") }

更新於: 30-7-2019

1 千次瀏覽

啟動你的 職業生涯

完成課程即可獲得認證

開始
廣告