2015-07-03 4 views
-1
{ 
"_id" : ObjectId("5431f38c4ba4dd20408b0432"), 
"UserID" : "1", 
"Status" : { 

    } 
}, 
"ListFilterType" : 1, 
"IssueCategories" : [ 
    { 
     "_id" : ObjectId("000000000000000000000000"), 
     "IssueCategoryID" : 2, 
     "IssueCagetoryName" : "test", 
     "MatchKeyword" : "test", 
     "MatchKeywordID" : 2 
    } 
] 

}MongoDB вставить элемент в массиве

редактирования: мой expactation, как это.

{ 
"_id" : ObjectId("5431f38c4ba4dd20408b0432"), 
"UserID" : "1", 
"Status" : { 

    } 
}, 
"ListFilterType" : 1, 
"IssueCategories" : [ 
    { 
     "_id" : ObjectId("000000000000000000000000"), 
     "IssueCategoryID" : 2, 
     "IssueCagetoryName" : "test", 
     "MatchKeyword" : "test", 
     "MatchKeywordID" : 2 
    }, 
    { 
     "_id" : ObjectId("000000000000000000000001"), 
     "IssueCategoryID" : 3, 
     "IssueCagetoryName" : "test2", 
     "MatchKeyword" : "test2", 
     "MatchKeywordID" : 3 
    }, 
    { 
     "_id" : ObjectId("000000000000000000000004"), 
     "IssueCategoryID" : 4, 
     "IssueCagetoryName" : "test4", 
     "MatchKeyword" : "test34", 
     "MatchKeywordID" : 4 
    } 
] 

У меня есть список типов как «IssueCategories». Вы можете увидеть мою структуру mongodb выше. Если root_id = мой параметр, я хочу добавить в mongodb. Я надеюсь, что я объяснил правильные

благодаря

+0

Повторите попытку в своей структуре документа, поскольку она в настоящее время недействительна. Кроме того, кроме вашего названия вопроса, я не вижу здесь вопроса. Вы хотите «$ push» в массив «IssueCategories»? –

+0

да я. точно это @BlakesSeven – user2372850

+0

Структура документа по-прежнему недействительна. «Я так понимаю, как?» Пожалуйста, покажите код, который вы используете прямо сейчас, и какой результат вы ожидаете. –

ответ

0

Вы должны использовать либо $push или $addToSet обновить документ.

$push добавит все элементы в IssueCategories, включая дубликаты. Пока в $addToSet не вставляйте повторяющиеся элементы (объект) в массив, если весь массив присутствует в массиве.

Использование $ нажим:

db.collection.update({ 
    "_id": ObjectId("5431f38c4ba4dd20408b0432") // you can add any other param 
}, { 
    $push: { 
    SCSIssueCategories: { 
     "_id": ObjectId("11111111111111111"), //ur id here 
     "IssueCategoryID": 3, 
     "IssueCagetoryName": "Sözleşme1", 
     "MatchKeyword": "abonelik süresi1", 
     "MatchKeywordID": 3 
    } 
    } 
}) 

Вот запрос с использованием $addToSet:

db.collection.update({ 
    "_id": ObjectId("5431f38c4ba4dd20408b0432") 
}, { 
    $addToSet: { 
    SCSIssueCategories: { 
     "_id": ObjectId("11111111111111111"), //ur id here 
     "IssueCategoryID": 3, 
     "IssueCagetoryName": "Sözleşme1", 
     "MatchKeyword": "abonelik süresi1", 
     "MatchKeywordID": 3 
    } 
    } 
}) 

** Если одного парам иметь другое значение, то он будет вставлен в массив с помощью $addToSet. **

Смежные вопросы