下面是详细信息:分派集合
"_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}]
}
]这个集合中有很多文档,我需要在“currentDay”(ToBeDispatchedOn)和D-7(ToBeDispatchedOn 7)的基础上在"toBeDispatchedBy“、"toBeDispatchedto”的基础上显示文档,这是我从req.body获得的,我需要在nodejs中实现这个查询。
发布于 2020-01-31 09:42:21
考虑到您使用的是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")]
}
});您不需要将聚合用于简单的查找操作。
https://stackoverflow.com/questions/60001216
复制相似问题