MongoDB C#API中的数组结构
我正在使用MongoDB C#API Questions属性是Dictionary对象而不是数组。我想向提供商提出问题,但无法添加任何项目。我不想转换为数组,因为这次开始出现分页问题 以下是MongoDB文档结构:MongoDB C#API中的数组结构,c#,mongodb,mongodb-query,mongodb-.net-driver,C#,Mongodb,Mongodb Query,Mongodb .net Driver,我正在使用MongoDB C#API Questions属性是Dictionary对象而不是数组。我想向提供商提出问题,但无法添加任何项目。我不想转换为数组,因为这次开始出现分页问题 以下是MongoDB文档结构: /* 1 */ { "_id" : ObjectId("55811f42a6df1a1d50409ff7"), "CreationDate" : ISODate("2015-06-17T07:18:26.028Z"), "IsActive" : true,
/* 1 */
{
"_id" : ObjectId("55811f42a6df1a1d50409ff7"),
"CreationDate" : ISODate("2015-06-17T07:18:26.028Z"),
"IsActive" : true,
"Acls" : [],
"AclCount" : 0,
"QuestionCount" : 0,
"Questions" : {
"sss" : {
"_id" : ObjectId("000000000000000000000000"),
"CreationDate" : Date(-62135596800000),
"IsActive" : false,
"Name" : null,
"IsRequired" : false,
"QuestionType" : 0,
"AnswerInputType" : 0,
"AnswerValidationPattern" : null,
"AnswerValidationMessage" : null,
"QuestionOrder" : 0,
"DataSource" : [],
"DataSourceItemCount" : NumberLong(0)
},
"sssdd" : {
"_id" : ObjectId("000000000000000000000000"),
"CreationDate" : Date(-62135596800000),
"IsActive" : false,
"Name" : null,
"IsRequired" : false,
"QuestionType" : 0,
"AnswerInputType" : 0,
"AnswerValidationPattern" : null,
"AnswerValidationMessage" : null,
"QuestionOrder" : 0,
"DataSource" : [],
"DataSourceItemCount" : NumberLong(0)
}
},
"Name" : "wer",
"Description" : "sdf",
"IsPublished" : false,
"TemplatePath" : "2015\\6\\3a28f06c511847c687e12e540f0bc9fc",
"StorageId" : ObjectId("55803655a6df1919280fd958"),
"OwnerId" : ObjectId("55803655a6df1919280fd956")
}
我正在尝试PushWrapped和addtosetrapped命令,但没有解决我的问题
Dictionary<string, Question> model = new Dictionary<string, Question>();
model.Add(question.Id.ToString(), question);
IMongoQuery query = Query.EQ("_id", BsonValue.Create(formId));
WriteConcernResult result = this.MongoCollection.Update(query, Update.PushWrapped<Dictionary<string, Question>>("Questions", model).Inc("QuestionCount", 1));
Dictionary model=newdictionary();
model.Add(question.Id.ToString(),question);
IMongoQuery=query.EQ(“_id”,BsonValue.Create(formId));
WriteConcernResult result=this.MongoCollection.Update(query,Update.PushWrapped(“Questions”,model).Inc(“QuestionCount”,1));
推送并添加到仅适用于数组的集合,因为“问题”不是数组,所以不能这样做。您应该能够使用Update.Set(“Questions.+question.Id,question)。可以,但需要重新注册并接收Set进程的数据。以前的问题是数组。实际上转到了逻辑更改,因为导致了分页问题。不知怎的,我没有解决这个问题对不起,我不知道你在说什么。这与你上面的问题有什么关系?首先,让我解释一下,我有一个记录,在这个记录上有一个问题属性。但是在问题的数据源中,我想对这些数据源属性进行分页。我想做一个记录,而不仅仅是对所有问题的分页db.getCollection('forms')。查找({u id:ObjectId(“557e8c93a6df1a22041e0879”),“questions.”id:ObjectId(“557e8c9fa6df1a22041e087b”),{“questions.$.DataSource:{$slice:[0,2]},{id:0,“questions.datasourceitem:1})
Ok,这与这个问题有什么关系?也许你应该就此提出另一个问题,我们可以在那里解决这个问题。