【发布时间】:2021-05-27 14:55:51
【问题描述】:
我在文档中的一个属性是一个数组,里面充满了漂亮的蓬松对象。 现在我想擦除所有具有特定范围的对象 -> qdate:20210225。
db 属性被称为周,如下所示:
[
{
"time": [
"06",
"00"
],
"active": false,
"reason": "",
"bookTime": "202102250600",
"qdate": 20210225,
"booked": false
},
{
"time": [
"06",
"15"
],
"active": false,
"reason": "",
"bookTime": "202102250615",
"qdate": 20210225,
"booked": false
},
{
"time": [
"06",
"30"
],
"active": false,
"reason": "",
"bookTime": "202102250630",
"qdate": 20210225,
"booked": false
},
{
"time": [
"06",
"45"
],
"active": false,
"reason": "",
"bookTime": "202102250645",
"qdate": 20210225,
"booked": false
},
{
"time": [
"07",
"00"
],
"active": false,
"reason": "",
"bookTime": "202102250700",
"qdate": 20210225,
"booked": false
},
{
"time": [
"07",
"15"
],
"active": false,
"reason": "",
"bookTime": "202102250715",
"qdate": 20210225,
"booked": false
},
{
"time": [
"08",
"00"
],
"active": true,
"reason": "",
"bookTime": "202102250800",
"qdate": 20210225,
"booked": false
},
{
"time": [
"08",
"15"
],
"active": true,
"reason": "",
"bookTime": "202102250815",
"qdate": 20210225,
"booked": false
},
{
"time": [
"08",
"30"
],
"active": true,
"reason": "",
"bookTime": "202102250830",
"qdate": 20210225,
"booked": false
},
{
"time": [
"08",
"45"
],
"active": true,
"reason": "",
"bookTime": "202102250845",
"qdate": 20210225,
"booked": false
},
{
"time": [
"09",
"00"
],
"active": true,
"reason": "",
"bookTime": "202102260900",
"qdate": 20210226,
"booked": false
},
]
我可以删除其中一个毛茸茸的物体,但其他的不会。 我尝试了各种组合。
const company = await Company.updateMany(
{ email: 'test@gmail.com' },
{ $pullAll: [{ 'weeks.qdate': 20210225 }] },
(err, data) => {
if (err) console.log(err);
}
);
const company = await Company.updateMany(
{ email: 'test@gmail.com' },
{ $pullAll: [{ 'weeks': { $elemMatch: { qdate: 20210225 } } }] },
(err, data) => {
if (err) console.log(err);
}
);
我知道从查询中我只能提取一次出现,所以我只能找到一个具有 qdate:20210225 蓬松值的对象,以便获得所有我写的聚合管道但我不能完全删除该对象我可以替换值。
这里有好心人来帮我吗?
【问题讨论】:
-
谢谢,但这行不通,因为他有 [1,2,3] 而我有 [{},{},{}];
标签: javascript mongodb mongoose mongodb-query