2015-06-17 30 views
0

我正在使用MongoDB C#API。問題屬性是Dictionary對象不是數組。我想在提供商的問題中推物品,但不能添加任何物品。我不想轉換爲數組,因爲這一次啓動分頁問題。MongoDB中的數組結構C#API

下面是MongoDB的文檔結構:

/* 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和AddToSetWrapped命令,但沒有解決我的問題。

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)); 

回答

0

推送和添加只設置數組的工作,因爲「問題」不是一個數組,你不能這樣做。你應該可以使用Update.Set(「Questions。」+ question.Id,question)。

+0

好的,但需要重新註冊和接收設置過程的數據。以前的問題是數組。實際上去了因爲導致分頁問題而導致的邏輯改變。不知何故,我不解決這個問題(http://stackoverflow.com/questions/30843146/paging-subdocument-in-mongodb-subdocument/30844014#30844014) –

+0

對不起,我不知道你是什麼談論。這與你的問題有什麼關係? –

+0

讓我解釋一下,首先,我有一條記錄,並在此記錄上有一個Questions屬性。但在作爲問題數據源的問題中,我想對這些數據源屬性進行分頁。我希望做一個記錄不只是分頁上的所有問題 'db.getCollection( '形式')找到({ 「_id」:的ObjectId( 「557e8c93a6df1a22041e0879」), 「Questions._id」:物件(「557e8c9fa6df1a22041e087b 「) },{ 「問題$數據源。」:{ 「$切片」:[0,2] }, 「_id」:0, 「Questions.DataSourceItemCount」:1 })' –