【发布时间】:2016-06-19 01:35:51
【问题描述】:
我有名为RegisterList 的猫鼬文档,该文档包含名为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://test15.watervan.in/wp-content/uploads/2015/07/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://test15.watervan.in/wp-content/uploads/2015/07/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://test15.watervan.in/wp-content/uploads/2015/07/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://test15.watervan.in/wp-content/uploads/2015/07/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"
}
]
}
]
如何单独找到最近插入的子文档。在给定的 JsonCode 中。
我们将不胜感激...
更新:
我需要为delivery_date 和status 找到AND 条件的数据,那么我该如何编写猫鼬查询来获取数据
【问题讨论】:
-
不完全清楚你在问什么。您是指集合中每个文档的数组中最新的
"ordered_at"值吗?或者您可能是指集合中 "all" 文档中具有最新值的子文档?无论如何,在任何给定文档中,“最后一个”数组项将始终是最新的,除非您专门在位置添加新项或在更新时对数组进行排序。 -
完全正确您是指集合中每个文档的数组中最近的“ordered_at”值
-
如果您通过
$push运算符将子文档推送到booking数组,它会将元素插入到数组的末尾。除非在$position之内。 -
所以我们正在寻找的使操作变得简单的说明是,如果“最新”总是在数组的末尾(默认情况下它会在没有其他修改的情况下)那么所有你真正要求的是要从每个文档返回的数组的“最后一个”元素。当然,有一个内置的“投影”运算符可以做到这一点,而且我也确信之前已经在这里提出过直接问题。
-
你想要最近的
ordered_at,可能是stackoverflow.com/questions/16497016/…的重复?