我有以下json对象。
{
"_id" : ObjectId("123209sfekjern"),
"Name" : "Test1",
"Orders" : [
{
"Date" : "2020-05-05",
"Total" : "100.00"
},
{
"Date" : "2020-05-10",
"Total" : "110.00"
},
{
"Date" : "2020-05-11",
"Total" : "100.00"
},
{
"Date" : "2020-05-14",
"Total" : "110.00"
},
{
"Date" : "2020-05-20",
"Total" : "100.00"
},
{
"Date" : "2020-05-15",
"Total" : "100.00"
},
{
"Date" : "2020-05-12",
"Total" : "110.00"
},
{
"Date" : "2020-05-18",
"Total" : "100.00"
},
{
"Date" : "2020-05-31",
"Total" : "110.00"
}
]
}
我需要大于100.00的所有订单的客户名称,orders.Date和Order.Total。>
我尝试了以下查询。。
db.Customers.aggregate ( [ { $match: { $and: [ {"Orders.Date":{$gte:"2020-05-15"}},//ISODate('2020-05-15 10:00:00.000Z') { "Orders.Total": { $gte: "100.00" } }, ] } }, { $project: { _id:0, Name: 1, "Orders.Total": 1, "Orders.Date": 1} }, ] )
上面的查询返回所有记录。我仍然是初学者,正在学习mongodb。任何帮助将不胜感激。
谢谢。
我有以下json对象。 {“ _id”:ObjectId(“ 123209sfekjern”),“名称”:“ Test1”,“订单”:[{“日期”:“ 2020-05-05”,“总计”:“ 100.00”},{“日期“:” ...
$match
在文档级别过滤,因此如果至少一个子文档符合您的条件,则将返回整个文档。为了过滤嵌套数组,您需要$filter: