2013-12-10 3 views
1

Я хочу вставить элемент массива, где Title является «Cities», но он либо не вставляет, либо вставляет новый массив, а не Links.Link. Любая идея, что я делаю неправильно. Я попытался толчок и $ addToSetДобавить новый элемент в Mongo Document

{ 
    "Component" : [ 
     { 
      "Title" : "regions", 
      "Links" : { 
       "Link" : [ 

        { 
         "Text" : "Tyrol", 
         "Url" : "/1xf-en700p/cheap-holidays-tyrol", 
         "Title" : "Cheap holidays Tyrol" 
        }, 
        { 
         "Text" : "Browse Regions ", 
         "Url" : "/1xf-en6ujz-10ts/cheap-holidays-austria/regions", 
         "Title" : "Cheap holidays Austria", 
         "Style" : "BrowseForMore" 
        } 
       ] 
      } 
     }, 
     { 

      "Title" : "cities", 
      "Links" : { 
       "Link" : [ 
        { 
         "Text" : "Maria Saal", 
         "Url" : "/1xf-enu4dl/cheap-holidays-maria-saal", 
         "Title" : "Cheap holidays Maria Saal" 
        }, 
        { 
         "Text" : "Nessendorf", 
         "Url" : "/1xf-enwvu8/cheap-holidays-nessendorf", 
         "Title" : "Cheap holidays Nessendorf" 
        }, 

       ] 
      } 
     }, 

    ], 
    "Id" : "125570", 

} 

with 

var pd = { Text: 'test',Url: 'test',Title: 'test' }; 
db.PopularDestinationsUk.update 
( 
    { 
     Id: '125570' 
     ,'Component.Title': 'cities'} 

    } 
    , 
    { 
     $push: 
     { 
      'Component.Link.$.Links { Text: 'NEW',Url: 'NEW',Title: 'NEW' }}} 
     } 
    } 
) 

, но это не вставить в нужное место

ответ

1

Обновить запрос следующим образом:

db.PopularDestinationsUk.update({Id: "125570", "Component.Title" : "cities"}, {$push : {"Component.$.Links.Link" : {Text: 'NEW',Url: 'NEW',Title: 'NEW'}}}) 
+0

Wow это было быстро, и она работала. Спасибо, я пытался понять это на века – PaulManningBiz

+0

Добро пожаловать. –

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