这是我在对象statusDate字段中的更新集合对象,我从此更改为第二个代码但不起作用
这是我的收藏
{
"_id" : "001-8",
"referenceType" : "Invoice",
"refNo" : "00000001",
"tranDate" : ISODate("2018-04-04T21:10:33.419+07:00"),
"customerId" : "0001",
"setting" : {
"accountId" : "Vendor Deposit",
"tradeDiscount" : "Discount Received"
},
"statusDate" : {
"active" : ISODate("2018-04-04T21:10:33.420+07:00")
},
我的代码可以使用,但我希望使用我的第二个代码,但它不起作用
Sale.update(
{
_id: invoiceId,
customerId: customerId,
},
{
$set: {
status: status,
'statusDate.closed': tranDate,
},
}
)
我做了类似但不行的事
let statusDate = {}
statusDate['statusDate.closed'] = moment().toDate()
Sale.update(
{
_id: invoiceId,
customerId: customerId,
},
{
$set: {
status: status,
statusDate
}
}
)
答案 0 :(得分:0)
您无法使用更新查询传递对象。 相反,您可以使用findOneAndUpdate
let statusDate = {}
let status=true`
let data =
{
statusDate.["statusDate.closed"]:moment().toDate(),
status:status
}
sales.findOneAndUpdate(
{_id: invoiceId,
customerId: customerId}
,{$set:data}
)