C# 我可以在查找和释放集合后映射从MongoDB获取的数据吗
C# 我可以在查找和释放集合后映射从MongoDB获取的数据吗,c#,mongodb,mongodb-query,aggregation-framework,mongodb-.net-driver,C#,Mongodb,Mongodb Query,Aggregation Framework,Mongodb .net Driver,类定义和错误如上所述。查询结果如下 集合是database.GetCollection().Aggregate();(IAggregateFluent) MongodbQuery: { "aggregate": "Survey", "pipeline": [ { "$lookup": { "from": "SurveyPart",
类定义和错误如上所述。查询结果如下 集合是
database.GetCollection().Aggregate();(IAggregateFluent)
MongodbQuery:
{
"aggregate": "Survey",
"pipeline": [
{
"$lookup": {
"from": "SurveyPart",
"localField": "_id",
"foreignField": "SurveyId",
"as": "SurveyParts"
}
},
{
"$unwind": {
"path": "$SurveyParts",
"preserveNullAndEmptyArrays": true
}
},
{
"$lookup": {
"from": "SurveyPartQuestion",
"localField": "SurveyParts._id",
"foreignField": "SurveyPartId",
"as": "SurveyParts.SurveyPartQuestions"
}
},
{
"$unwind": {
"path": "$SurveyParts.SurveyPartQuestions",
"preserveNullAndEmptyArrays": true
}
},
{
"$lookup": {
"from": "SurveyPartQuestionAnswer",
"localField": "SurveyParts.SurveyPartQuestions._id",
"foreignField": "SurveyPartQuestionId",
"as": "SurveyParts.SurveyPartQuestions.SurveyPartQuestionAnswers"
}
},
{
"$unwind": {
"path": "$SurveyParts.SurveyPartQuestions.SurveyPartQuestionAnswers",
"preserveNullAndEmptyArrays": true
}
},
{
"$match": {
"IsDeleted": false
}
},
{
"$sort": {
"_id": -1
}
},
{
"$skip": 0
},
{
"$limit": 50
}
]
}
[
{
"_id": 1,
"CreatedOn": "",
"ModifiedOn": "",
"CreatedBy": 1,
"ModifiedBy": 1,
"OwningUser": 1,
"StatusCode": 1,
"IsDeleted": false,
"Name": "TEST SURVEY",
"Description": "TEST SURVEY DESCRIPTION",
"SurveyParts": {
"_id": 1,
"CreatedOn": "",
"ModifiedOn": "",
"CreatedBy": 1,
"ModifiedBy": 1,
"OwningUser": 1,
"StatusCode": 1,
"IsDeleted": false,
"Name": "TEST PART",
"Description": "TEST PART DESCRIPTION",
"Order": 1,
"SurveyId": 1,
"SurveyPartQuestions": {
"_id": 1,
"CreatedOn": "",
"ModifiedOn": "",
"CreatedBy": 1,
"ModifiedBy": 1,
"OwningUser": 1,
"StatusCode": 1,
"IsDeleted": false,
"Name": "TEST QUESTION",
"Description": "TEST QUESTION DESCRIPTION",
"ReferenceCode": "TEST REFERENCE",
"Type": "RADIO",
"Order": 1,
"IsRequired": true,
"SurveyPartId": 1,
"SurveyPartQuestionAnswers": {
"_id": 1,
"CreatedOn": "",
"ModifiedOn": "",
"CreatedBy": 1,
"ModifiedBy": 1,
"OwningUser": 1,
"StatusCode": 1,
"IsDeleted": false,
"Name": "TEST ANSWER",
"Hint": "TEST ANSWER HINT",
"Tag": "TEST TAG",
"IsTextField": true,
"Order": 1,
"SurveyPartQuestionId": 1
}
}
}
}
]
MongoDb结果:
{
"aggregate": "Survey",
"pipeline": [
{
"$lookup": {
"from": "SurveyPart",
"localField": "_id",
"foreignField": "SurveyId",
"as": "SurveyParts"
}
},
{
"$unwind": {
"path": "$SurveyParts",
"preserveNullAndEmptyArrays": true
}
},
{
"$lookup": {
"from": "SurveyPartQuestion",
"localField": "SurveyParts._id",
"foreignField": "SurveyPartId",
"as": "SurveyParts.SurveyPartQuestions"
}
},
{
"$unwind": {
"path": "$SurveyParts.SurveyPartQuestions",
"preserveNullAndEmptyArrays": true
}
},
{
"$lookup": {
"from": "SurveyPartQuestionAnswer",
"localField": "SurveyParts.SurveyPartQuestions._id",
"foreignField": "SurveyPartQuestionId",
"as": "SurveyParts.SurveyPartQuestions.SurveyPartQuestionAnswers"
}
},
{
"$unwind": {
"path": "$SurveyParts.SurveyPartQuestions.SurveyPartQuestionAnswers",
"preserveNullAndEmptyArrays": true
}
},
{
"$match": {
"IsDeleted": false
}
},
{
"$sort": {
"_id": -1
}
},
{
"$skip": 0
},
{
"$limit": 50
}
]
}
[
{
"_id": 1,
"CreatedOn": "",
"ModifiedOn": "",
"CreatedBy": 1,
"ModifiedBy": 1,
"OwningUser": 1,
"StatusCode": 1,
"IsDeleted": false,
"Name": "TEST SURVEY",
"Description": "TEST SURVEY DESCRIPTION",
"SurveyParts": {
"_id": 1,
"CreatedOn": "",
"ModifiedOn": "",
"CreatedBy": 1,
"ModifiedBy": 1,
"OwningUser": 1,
"StatusCode": 1,
"IsDeleted": false,
"Name": "TEST PART",
"Description": "TEST PART DESCRIPTION",
"Order": 1,
"SurveyId": 1,
"SurveyPartQuestions": {
"_id": 1,
"CreatedOn": "",
"ModifiedOn": "",
"CreatedBy": 1,
"ModifiedBy": 1,
"OwningUser": 1,
"StatusCode": 1,
"IsDeleted": false,
"Name": "TEST QUESTION",
"Description": "TEST QUESTION DESCRIPTION",
"ReferenceCode": "TEST REFERENCE",
"Type": "RADIO",
"Order": 1,
"IsRequired": true,
"SurveyPartId": 1,
"SurveyPartQuestionAnswers": {
"_id": 1,
"CreatedOn": "",
"ModifiedOn": "",
"CreatedBy": 1,
"ModifiedBy": 1,
"OwningUser": 1,
"StatusCode": 1,
"IsDeleted": false,
"Name": "TEST ANSWER",
"Hint": "TEST ANSWER HINT",
"Tag": "TEST TAG",
"IsTextField": true,
"Order": 1,
"SurveyPartQuestionId": 1
}
}
}
}
]
我需要一次在根类上映射它们。如何从该聚合中释放数据?是否可能?我为这个错误花费了太多时间,但我找不到任何关于它的信息。我刚刚发现了我的错误,unwind将数组映射到一个对象,而它不再映射。我放弃了从mongodb获取嵌套数据,我将它从entityframework获取到mongod,在此之后,我将一次性获取所有数据。这只是解决我的问题。但我仍然很好奇:)我刚刚发现了我的错误,unwind将数组映射到一个对象,它不再映射了。我放弃了从mongodb获取嵌套数据,我将它从entityframework获取到mongod,在此之后,我将一次性获取所有数据。这只是解决我的问题。但我仍然对这样做感到好奇:)