ниже - результат обратного вызова mon goose моего запроса mon go, я только упомяну два примера результатов
result [
{
"_id" : ObjectId("5e5a0be699e0e4449829c444"),
"mappedAdmins" : ObjectId("5e5906dfc749dc4498033f7e"),
"userId":ObjectId("5e5a0be699e0e4449829c444"),
"city" : "City1",
"prints" : {
"copyCount" : 40,
"printCode" : "KL001"
},
"printDetails" : [
{
"abbreviation" : "pn1",
"printName" : "Print Name 1",
"printCode" : "PD001"
},
{
"abbreviation" : "pn2",
"printName" : "Print Name 2",
"printCode" : "KL001"
},
{
"abbreviation" : "pw1",
"printName" : "Print wealth",
"printCode" : "E001"
},
],
"orders" : [
{
"_id" : ObjectId("5e3a714af2657521e8c5668d"),
"approved" : false,
"orderCreatedforDate" : ISODate("2020-02-26T18:30:00Z"),
"order" : [
{
"_id" : ObjectId("5e3a714af2657521e8c5668f"),
"abbreviation" : "pn2",
"printName" : "Print Name 2",
"printCode" : "KL001",
"copyCount" : 11,
"tradeCopies" : 133
},
{
"_id" : ObjectId("5e3a714af2657521e8c5668e"),
"abbreviation" : "pn1",
"printName" : "Print Name 1",
"printCode" : "PD001",
"copyCount" : 17,
"tradeCopies" : 117
}
],
"frequency" : "TU"
}
]
}
{
"_id" : ObjectId("5e5d236f99e0e4449829c44e"),
"mappedAdmins" : ObjectId("5e5d237fc749dc4498033f87"),
"city" : "City1",
"prints" : {
"copyCount" : 100,
"printCode" : "KL001"
},
"printDetails" : [
{
"abbreviation" : "et",
"printName" : "Print Name 1",
"printCode" : "PD001"
},
{
"abbreviation" : "pn2",
"printName" : "Print Name 2",
"printCode" : "KL001"
},
{
"abbreviation" : "pw1",
"printName" : "Print wealth",
"printCode" : "E001"
},
],
"orders" : [ ]
это мой обратный вызов mon goose после моего mon go запрос заканчивается:
const orderCron = new CronJob('* * * * *', function () {
console.log('orders cron for create orders');
InsertOrdersdata();
}, null, false, 'Asia/Calcutta');
orderCron.start();
async function InsertOrdersdata() {
console.log('InsertOrdersdata');
///// mongoquery starts....////
////....mongo query ends here,before this callback function ////
], async function (res, result) {
console.log('result', result)
try {
let newarry = [];
Object.keys(result).forEach(key => {
if (result[key].orders.length > 0) {
console.log('length', result[key].orders.length);
let newrecord = {};
let val = result[key].printorders
console.log('val', val)
newrecord = result[key].orders[0];
newrecord._id = null;
newrecord['orderCreatedforDate'] = tomorrowDate;
newarry.push(newrecord);
}
})
const cronOrders = await Order.insertMany(newarry)
console.log('cronOrders', cronOrders)
return res.status(200).json({
cronOrders
})
Я не могу сделать это ЗАЯВЛЕНИЕ НА ПРОБЛЕМУ должным образом. ** 1: ** мне нужно проверить, было ли изменено copyCount для этого printCode из "print" : {"copyCount" : 100,"printCode" : "KL001"}
, затем обновите copyCount в порядке покоя printDetails, который будет точно таким же, он будет выглядеть так:
{
"_id" : ObjectId("new ObjectId would be generated"),
"approved" : false,
"orderCreatedforDate" : ISODate("2020-03-04T18:30:00Z"),//D+1 i already have a global function for D+1 date with name tomorrowDate
"printOrder" : [
{ "_id" : ObjectId("new ObjectId would be generated"),
"abbreviation" : "pn2",
"printName" : "Print Name 2",
"printCode" : "KL001",
"copyCount" : 100, ///Count updated
"tradeCopies" : 156
},
{ "_id" : ObjectId("new ObjectId would be generated"),
"abbreviation" : "pn1",
"printName" : "Print Name 1",
"printCode" : "PD001",
"copyCount" : 19,///Count same
"tradeCopies" : 192
}
],
"frequency" : "TU",
"userId" : ObjectId("5e5a0be699e0e4449829c444"), /// this is _id from result
"mappedAdmins" : ObjectId("5e5906dfc749dc4498033f7e"),/// this is mappedAdmins from result
}
2: если порядок равен нулю, то есть orders:[]
, тогда мне нужно извлечь _id,mappedAdmins
из результата & abbreviation,printName,printCode
из printDetails
, и мне нужно поставить значение по умолчанию "0" для tradeCopies и copyCount и частота за неделю, т. е. завтра будет «МЫ», это будет выглядеть так:
{
"_id" : ObjectId("new ObjectId would be generated"),
"approved" : false,
"orderCreatedforDate" : ISODate("2020-03-04T18:30:00Z"),
"order" : [
{ "_id" : ObjectId("new ObjectId would be generated"),
"abbreviation" : "pn2",
"printName" : "Print Name 2",
"printCode" : "KL001",
"copyCount" : 0 ///zero count
"tradeCopies" : 0 ///zero count
},
{ "_id" : ObjectId("new ObjectId would be generated"),
"abbreviation" : "pn1",
"printName" : "Print Name 1",
"printCode" : "PD001",
"copyCount" : 0 ///zero count
"tradeCopies" : 0 ///zero count
},
{ "_id" : ObjectId("new ObjectId would be generated"),
"abbreviation" : "pw1",
"printName" : "Print Name 2 wealth",
"printCode" : "E001",
"copyCount" : 0 ///zero count
"tradeCopies" : 0 ///zero count
}
],
"frequency" : "WE",
"userId" : ObjectId("5e5a0be699e0e4449829c444"),/// this is _id from result
"mappedAdmins" : ObjectId("5e5906dfc749dc4498033f7e"),/// this is mappedAdmins from result
}
обязательно посмотрите комментарии в коде. Поля, которые мне нужно добавить, утверждены: ложь , userId который является _id, dealerId который является mappedAdmins . 1: я не могу сгенерировать новый заказ, если заказ равен нулю, то есть orders: [], 2: я не могу обновить copyCount для заказа.