我有一個從 nodejs 中的 post 請求中獲得的 id 陣列。我想洗掉與接收 id 陣列匹配的訂單陣列中的所有元素。
例如 remove_id = ['60f1ab20891ced4818b5ea88','60f1ab20891ced4818b5ea87'] 所以我想從 id 匹配匹配 remove_id 陣列的訂單陣列中洗掉所有元素。
orderdetail = {
_id: 60f1ab20891ced4818b5ea86,
totalPrice: 400,
orders: [
{
_id: 60f1ab20891ced4818b5ea87,
quantity: 1,
price: 200,
name: 'Caramel Latte',
category: 'Steaming Cups'
},
{
_id: 60f1ab20891ced4818b5ea88,
quantity: 1,
price: 200,
name: 'Cinnamon Latte',
category: 'Steaming Cups'
},
{
_id: 60f1ab20891ced4818b5ea89,
quantity: 1,
price: 200,
name: 'Cinnamon Latte',
category: 'Steaming Cups'
}
],
timestamp: 1626450720332,
name: 'xxx',
email: 'xxx',
}
我嘗試過但沒用的,
Orderdetail.updateOne( { _id: '60f1ab20891ced4818b5ea86' }, {
$pull: { order: { _id: { $in: remove_id } } } } )
uj5u.com熱心網友回復:
將物件名稱重命名order為orders!
試試這個代碼!
let remove_id = ['60f1ab20891ced4818b5ea87','60f1ab20891ced4818b5ea88']
db.getCollection('Orderdetail').updateOne({ _id: '60f1ab20891ced4818b5ea86' }, {
$pull: {
orders: { // rename this to orders
_id: { $in: remove_id }
}
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/408219.html
標籤:
