"$pull" 不删除 mongoose 数组的嵌入文档
"$pull" doesn't delete the embedded documents of mongoose array
我的 mongo 架构如下:
resourceId: {
type: String,
},
resourceName: {
type: String,
},
dateAndValue: [
{
date: { type: Date },
value: { type: Number },
},
],
将数据添加到“dateAndValue”数组后,我想删除数组中包含“0”作为值的所有对象。这是我使用的代码,但它似乎不起作用:
await QuantumResourcesManpowerAdmin.updateMany(
{ resourceId: qrmaRecord.resourceId },
{
$pull: {
dateAndValue: {
$elemMatch: { value: 0 },
},
},
},
{ multi: true }
);
找到答案,上面的代码中应该去掉$elemMatch。所以,
await QuantumResourcesManpowerAdmin.update(
{ resourceId: qrmaRecord.resourceId },
{
$pull: {
dateAndValue: {
value: 0,
},
},
},
{ safe: true, multi: true }
);
可以正常工作
我的 mongo 架构如下:
resourceId: {
type: String,
},
resourceName: {
type: String,
},
dateAndValue: [
{
date: { type: Date },
value: { type: Number },
},
],
将数据添加到“dateAndValue”数组后,我想删除数组中包含“0”作为值的所有对象。这是我使用的代码,但它似乎不起作用:
await QuantumResourcesManpowerAdmin.updateMany(
{ resourceId: qrmaRecord.resourceId },
{
$pull: {
dateAndValue: {
$elemMatch: { value: 0 },
},
},
},
{ multi: true }
);
找到答案,上面的代码中应该去掉$elemMatch。所以,
await QuantumResourcesManpowerAdmin.update(
{ resourceId: qrmaRecord.resourceId },
{
$pull: {
dateAndValue: {
value: 0,
},
},
},
{ safe: true, multi: true }
);
可以正常工作