【发布时间】:2020-12-08 09:47:49
【问题描述】:
如果同一个对象具有相似的元素,我想从我的 MongoDB 对象中删除 ($unset) 元素。 我的对象:
{
"_id": "5eabf8b144345b36b00bfbaa",
"ranktime": [{
"pos":"2",
"datum":"Mon May 05 2020 12:22:52 GMT+0200 (GMT+02:00)",
"source":"SOURCE2"
},{
"pos":"1",
"datum":"Fri May 01 2020 12:23:10 GMT+0200 (GMT+02:00)",
"source":"SOURCE1"
},{
"pos":"37",
"datum":"Fri May 01 2020 12:25:14 GMT+0200 (GMT+02:00)",
"source":"SOURCE2"
},{
"pos":"12",
"datum":"Fri May 01 2020 12:25:14 GMT+0200 (GMT+02:00)",
"source":"SOURCE2"
},{
"pos":"37",
"datum":"Fri May 01 2020 18:45:27 GMT+0200 (GMT+02:00)",
"source":"SOURCE2"
}]
}
所以如果ranktime.source == "SOURCE2" 并且日期与之前的对象相同,我想删除ranktime 中的条目。实际上我必须遍历ranktime 的单个元素。这在 MongoDB 中可行吗?
预期结果是:
{
"_id": "5eabf8b144345b36b00bfbaa",
"ranktime": [{
"pos":"2",
"datum":"Mon May 05 2020 12:22:52 GMT+0200 (GMT+02:00)",
"source":"SOURCE2"
},{
"pos":"1",
"datum":"Fri May 01 2020 12:23:10 GMT+0200 (GMT+02:00)",
"source":"SOURCE1"
},{
"pos":"37",
"datum":"Fri May 01 2020 12:25:14 GMT+0200 (GMT+02:00)",
"source":"SOURCE2"
}]
}
【问题讨论】:
-
您的 MongoDB 版本是多少?以及为什么最后一个被删除(唯一日期)
-
我的版本是 4.2.8,抱歉,我的意思是同一日期(天),忽略时间。这就是为什么最后一个被删除
标签: arrays mongodb mongoose mongodb-query