Коллекция кандидатов
/* 1 */
{
"_id" : ObjectId("5ee8d0d16e4fec1ad4779249"),
"candidate_id" : ObjectId("5ee8d0d26e4fec1ad477924a"),
"first_name" : "Name1",
}
/* 2 */
{
"_id" : ObjectId("5ee8d0df6e4fec1ad477924b"),
"candidate_id" : ObjectId("5ee8d0d26e4fec1ad477924a"),
"first_name" : "Name2",
}
/* 3 */
{
"_id" : ObjectId("5eda1afa19722b7decfaa61a"),
"candidate_id" : ObjectId("5ee0f9f97ee51925b4afa2e6"),
"first_name" : "Name3",
}
/* 4 */
{
"_id" : ObjectId("5ea9af047d6a4f6480fd42f4"),
"candidate_id" : ObjectId("5ee0f9f97ee51925b4afa2e6"),
"first_name" : "Name4",
}
Коллекция адресов
/* 1 */
{
"_id" : ObjectId("5ee8d0d266342f5180d3b546"),
"candidate_id" : ObjectId("5ee8d0d26e4fec1ad477924a"),
"address" : "Street1",
}
/* 2 */
{
"_id" : ObjectId("5ee8d0e066342f5180d3b547"),
"candidate_id" : ObjectId("5ee8d0d26e4fec1ad477924a"),
"address" : "Street2"
}
/* 3 */
{
"_id" : ObjectId("5ee0f9f97ee51925b4afa2e7"),
"candidate_id" : ObjectId("5ee0f9f97ee51925b4afa2e6"),
"address" : "Street3"
}
/* 4 */
{
"_id" : ObjectId("5ee0f9f97ee51925b4afa2e8"),
"candidate_id" : ObjectId("5ee0f9f97ee51925b4afa2e6"),
"address" : "Street4"
}
У меня есть модели, как показано ниже
public class Candidate
{
[BsonId]
public string _ID { get; set; }
public string Candidate_ID { get; set; }
public string First_Name { get; set; }
public List<Address> Addresses { get; set; }
}
public class Address
{
[BsonId]
public string _ID { get; set; }
public string Candidate_ID { get; set; }
public string Address { get; set; }
}
public class CandidateResponse
{
public List<Candidate> Candidates { get; set; }
}
Я хочу оставить присоединиться к коллекции кандидатов с адресом collectoin и вернуть модель CandidateResponse
Мне нужны записи из коллекции Candidate с идентификатором кандидата отдельно.
т.е. первая запись каждого идентификатора кандидата из коллекции кандидатов со всеми адресами этого идентификатора кандидата.
Результат должен быть таким, как показано ниже
[
{
"_id": ObjectId("5ee8d0d16e4fec1ad4779249"),
"candidate_id": ObjectId("5ee8d0d26e4fec1ad477924a"),
"first_name": "Name1",
"Addresses": [
{
"_id": ObjectId("5ee8d0d266342f5180d3b546"),
"candidate_id": ObjectId("5ee8d0d26e4fec1ad477924a"),
"address": "Street1"
},
{
"_id": ObjectId("5ee8d0e066342f5180d3b547"),
"candidate_id": ObjectId("5ee8d0d26e4fec1ad477924a"),
"address": "Street2"
}
]
},
{
"_id": ObjectId("5eda1afa19722b7decfaa61a"),
"candidate_id": ObjectId("5ee0f9f97ee51925b4afa2e6"),
"first_name": "Name3",
"Addresses": [
{
"_id": ObjectId("5ee0f9f97ee51925b4afa2e7"),
"candidate_id": ObjectId("5ee0f9f97ee51925b4afa2e6"),
"address": "Street3"
},
{
"_id": ObjectId("5ee0f9f97ee51925b4afa2e8"),
"candidate_id": ObjectId("5ee0f9f97ee51925b4afa2e6"),
"address": "Street4"
}
]
}
]