下面是详细信息:调度集合
"_id" : ObjectId("5e27fd3da42d441fe8a89580"),
"dispatched" : false,
"dispatchableItems" : [
{
"_id" : ObjectId("5e26be2cc13b7149d0a95110"),
"itemCategory" : "Accessories",
"itemName" : "key chain",
"city" : "mumbai",
"itemCode" : "AKCME1",
"itemCount" : 20,
"fixeditemCount" : 2
},
{
"_id" : ObjectId("5e26be2cc13b7149d0a95111"),
"itemCategory" : "Handbags",
"itemName" : "kalinz purple long chain handbag",
"city" : "mumbai",
"itemCode" : "HKHE1",
"itemCount" : 5,
"fixeditemCount" : 1
}
],
"weekday" : "FR",
"toBeDispatchedBy" : ObjectId("5e2696c683201450a8ddb1dc"),
"toBeDispatchedTo" : ObjectId("5e2696f883201450a8ddb1df"),
"toBeDispatchedOn" : ISODate("2020-02-01T18:30:00Z")
并且有多个文档,一个文档是
"_id" : ObjectId("5e27fd3da42d441fe8a89087"),
"dispatched" : true,
"dispatchableItems" : [
{
"_id" : ObjectId("5e26be2cc13b7149d0a00997"),
"itemCategory" : "Accessories",
"itemName" : "key chain",
"city" : "mumbai",
"itemCode" : "AKCME1",
"itemCount" : 30,
"giftCount" : 2
},
{
"_id" : ObjectId("5e26be2cc13b7149d0a95678"),
"itemCategory" : "Handbags",
"itemName" : "kalinz purple long chain handbag",
"city" : "mumbai",
"itemCode" : "HKHE1",
"itemCount" : 10,
"giftCount" : 1
}
],
"weekday" : "FR",
"toBeDispatchedBy" : ObjectId("5e2696c683201450a8ddb1dc"),
"toBeDispatchedTo" : ObjectId("5e2696f883201450a8ddb1df"),
"toBeDispatchedOn" : ISODate("2020-01-25T18:30:00Z")
1:我需要显示ISODate(“ 2020-02-01T18:30:00Z”)和ISODate(“ 2020-01-25T18:30:00Z”)(即上周D-7的文件) )2:我将从req.body {“ toBeDispatchedBy”,“ toBeDispatchedto”}中获得此信息这是我尝试过的
db.orders.aggregate([
{'$match': {'toBeDispatchedBy': ObjectId("5e2696c683201450a8ddb1dc"),
"toBeDispatchedto": ObjectId("5e2696f883201450a8ddb1df"),
'$or': [
{
'toBeDispatchedOn': ISODate("2020-02-01T18:30:00Z")
}, {
'toBeDispatchedOn': ISODate("2020-01-25T18:30:00Z")
}]}}])
但是我只获取ISODate(“ 2020-01-25T18:30:00Z”)的文档此外,这是我实际需要的响应:
"dispatchDetails": [
{ "toBeDispatchedOn": ISODate("2020-02-01T18:30:00Z")
"itemCategory" : "Accessories",
"itemName" : "key chain",
"city" : "mumbai",
"itemCode" : "AKCME1",
"itemCount" : 30,
"giftCount" : 2,
"lastWeekData":[{"toBeDispatchedOn": ISODate("2020-01-25T18:30:00Z")
"itemCount" : 30,
"giftCount" : 2}]
},
{
"itemCategory" : "Handbags",
"itemName" : "kalinz purple long chain handbag",
"city" : "mumbai",
"itemCode" : "HKHE1",
"itemCount" : 10,
"giftCount" : 1,
"lastWeekData":[{"toBeDispatchedOn": ISODate("2020-01-25T18:30:00Z")
"itemCount" : 30,
"giftCount" : 2}]
}
]
此集合中有很多文档,我需要根据需要从“ toBeDispatchedBy”,“ toBeDispatchedto”显示当前日(toBeDispatchedOn)和D-7(toBeDispatchedOn-7)日的文档。主体,我需要在nodejs中实现此查询]
考虑到您正在使用mongoose
,您可以执行以下操作:
const { toBeDispatchedBy, toBeDispatchedTo } = req.body;
const result = await Order.find({
toBeDispatchedBy,
toBeDispatchedTo,
toBeDispatchedOn: {
$in: [new Date("2020-02-01T18:30:00Z"), new Date("2020-01-25T18:30:00Z")]
}
});
您不需要对简单的查找操作使用聚合。