【发布时间】:2023-02-13 23:54:57
【问题描述】:
我有这种 mongodb 文档示例
"data": {
"2023-02-01": {
"123": {
"price": 100,
},
"234": {
"price": 100,
},
},
"2023-02-02": {
"123": {
"price": 100,
},
"234": {
"price": 100,
},
},
"2023-02-03": {
"123": {
"price": 100,
},
"234": {
"price": 100,
},
},
}
我的系统上有映射 ID 列表,应该是这样的
ids = [123]
我想从文档中删除不在列表(ids)中的键,从特定日期(今天/“2023-02-02”)开始,日期总是更新,所以 ID,我的预期结果是
"data": {
"2023-02-01": {
"123": {
"price": 100,
},
"234": {
"price": 100,
},
},
"2023-02-02": {
"123": {
"price": 100,
},
},
"2023-02-03": {
"123": {
"price": 100,
},
},
}
我可以在 MongoDB 聚合上实现吗?我正在使用 pymongo
【问题讨论】:
-
使用动态值作为字段名被认为是反模式,并给查询带来不必要的复杂性。除非你有非常吸引人的理由,否则你应该避免高度嵌套。您应该考虑像 this 这样的模式
-
是的,我认为最好使用那种模式,感谢您的建议。如果我有一个包含该架构的文档,您是否有其他想法来实现我的目标?