Как получить конкретный встроенный массив из mongodb и добавить его в новый документ, используя драйвер mongodb c # - PullRequest
0 голосов
/ 21 января 2019

Я хочу получить конкретный встроенный массив из документа mongodb и добавить новый документ в этот встроенный массив с помощью драйвера .net mongodb.Driver.

вставляю документ как:

{
  "_id": "5c41b5c6b0ce0437dc576c53",
  "ProjectId": "234",
  "OwnerId": "62",
  "ProjectName": "proj4h46m",
  "FileDetails": [
    {
      "TotalWord": "-1",
      "RepeatedWord": "-1",
      "TMWordCount": "-1",
      "TranslationRequired": "-1",
      "ParentFileName": "test",
      "ChildFileName": "test_AR-SA",
      "Status": "Newly Uploaded"
    }
  ]
}

Я ожидаю получить из него массив FileDetails, добавить новый документ и обновить его в mongodb.как показано ниже:

{
  "_id": "5c41b5c6b0ce0437dc576c53",
  "ProjectId": "234",
  "OwnerId": "62",
  "ProjectName": "proj4h46m",
  "FileDetails": [
    {
      "TotalWord": "-1",
      "RepeatedWord": "-1",
      "TMWordCount": "-1",
      "TranslationRequired": "-1",
      "ParentFileName": "test",
      "ChildFileName": "test_AR-SA",
      "Status": "Newly Uploaded"
    },
    {
      "TotalWord": "10",
      "RepeatedWord": "3",
      "TMWordCount": "12",
      "TranslationRequired": "1",
      "ParentFileName": "test2",
      "ChildFileName": "test_AR-KSA",
      "Status": "Newly Uploaded"
    }
  ]
}

1 Ответ

0 голосов
/ 24 января 2019

Я получил это, используя метод ниже: -

 var query2 = Query.EQ(""ProjectId", "234");
 var document=@"{""TotalWord"": ""10"",""RepeatedWord"": "3",""TMWordCount"": ""12"",""TranslationRequired"": ""1"",""ParentFileName"": ""test2"",""ChildFileName"": ""test_AR-KSA"",""Status"": ""Newly Uploaded""}";
 var update = Update.Push("FileDetails", document.ToBsonDocument());
 collec.Update(query2, update);
...