【发布时间】:2020-05-20 21:31:35
【问题描述】:
我有这个数据库结构...
{
_id: int
A1: string
A2: [{
_id: int
B1: [int]
B2: int
B3: string
B4: string
B5: [{
C1: string
C2: {D1: string}
}]
B6: string
B7: false
}]
}
而且数据是这样的。
{_id:1, A1: "A", A2[{_id: 1, B1:[1], B2:1, B3:"X", B4:"B", B5[{C1:"123", C2:{D1: "331"}}], B6:"Ex", B7:true}]}
{_id:1, A1: "A", A2[{_id: 2, B1:[1], B2:1, B3:"Y", B4:"U", B5[{C1:"456", C2:{D1: "332"}}], B6:"Ea", B7:false}]}
{_id:2, A1: "Z", A2[{_id: 3, B1:[1], B2:2, B3:"I", B4:"O", B5[{C1:"789", C2:{D1: "333"}}], B6:"Eq", B7:false}]}
{_id:2, A1: "Z", A2[{_id: 4, B1:[1], B2:2, B3:"P", B4:"L", B5[{C1:"123", C2:{D1: "334"}}], 6:"Ee", B7:true}]}
所以我想这样拉数据。
{_id:1, A1: "A", A2[{_id: 1, B1:[1], B2:1, B3:"X", B4:"B", B5[{C1:"123", C2:{D1: "331"}}], B6:"Ex", B7:true}]}
{_id:1, A1: "A", A2[{_id: 2, B1:[1], B2:1, B3:"Y", B4:"U", B5[{C1:"456", C2:{D1: "332"}}], B6:"Ea", B7:false}]}
{_id:2, A1: "Z", A2[{_id: 3, B1:[1], B2:2, B3:"I", B4:"O", B5[{C1:"789", C2:{D1: "333"}}], B6:"Eq", B7:false}]}
也就是说,我想检查A2数组中的文档中C1的值是否重复,并获取A2数组中除了重复值之外的其余文档。
【问题讨论】:
-
所给出的样本是否取自任何聚合的中间?如果不是,您如何从多个文档中获得相同的
_id?是错字吗? -
@whoami 没有错字。我找到A2数组中的所有对象,但是如果有C2的重复,我想只带其中一个。