我有这样的架构:
User = {
field1: {type: String},
field2: {type: String},
field3: [
{
field4: {type: String},
field5: {type: String},
field6: {type: String}
}
]
}
DB中有多个用户,他们可以在嵌套文档数组中拥有相同的对象。数组中的对象对每个用户都是唯一的,但是有几个用户可以有重复项。
所以,问题是:我需要mongoose返回[{field5:...,field6:...}]的数组,其中没有重复项。我的意思是,我需要一个不是来自1个用户的唯一数组,我需要收集数据库中所有用户的所有唯一field5,field6对象。
示例:
User1 = {
name: "Andrew",
surname: "Pavlov"
orgInfo: [
{orgId: "orgId-1", INN: "inn-1", KPP: "kpp-1"},
{orgId: "orgId-2", INN: "inn-2", KPP: "kpp-2"},
{orgId: "orgId-3", INN: "inn-3", KPP: "kpp-3"},
]
}
User2 = {
name: "John",
surname: "Doe"
orgInfo: [
{orgId: "orgId-2", INN: "inn-2", KPP: "kpp-2"},
{orgId: "orgId-4", INN: "inn-4", KPP: "kpp-4"},
]
}
User3 = {
name: "Vasya",
surname: "Pupkin"
orgInfo: [
{orgId: "orgId-1", INN: "inn-1", KPP: "kpp-1"},
{orgId: "orgId-5", INN: "inn-5", KPP: "kpp-5"},
{orgId: "orgId-7", INN: "inn-7", KPP: "kpp-7"},
]
}
此集合上的查询应返回:
[
{INN: "inn-1", KPP: "kpp-1"},
{INN: "inn-2", KPP: "kpp-2"},
{INN: "inn-3", KPP: "kpp-3"},
{INN: "inn-4", KPP: "kpp-4"},
{INN: "inn-5", KPP: "kpp-5"},
{INN: "inn-7", KPP: "kpp-7"}
]