2013-11-26 3 views
0

Я хотел бы обновить несколько элементов они соответствуют заданным значениям: Примера: У меня есть коллекция с этой структурой:Обновить пару значений в вложенном массиве MongoDB

{ 
"_id" : ObjectId("52936a0270c68c04063f0300"), 
    "channel" : "1", 
    "content" : "145548", 
    "keywordsValues" : [ 
         [ObjectId("52816d3370c68c2c1c4b0500"), ObjectId("52816d3370c68c2c1c9f0500")], 
         [ObjectId("52816d3370c68c2c1c510500"), ObjectId("52816d3370c68c2c1c890500")], 
         [ObjectId("52816d3370c68c2c1c550500"), ObjectId("52816d3370c68c2c1c850500")], 
         [ObjectId("52816d3370c68c2c1c6b0500"), ObjectId("52816d3370c68c2c1c990500")] 
        ] 
} 

И мне нужно обновить поле «keywordsValues» (только один из пары в массиве [])

Что-то, например, обновить 2-го элемента в keywordsValues: Если мы нашли [FirstId, secondId] в keywordsValues ​​поле обновит второй secondId

$database->Measurements->update(
array('keywordsValues'=> 
array(new MongoId(52816d3370c68c2c1c4b0500),new MongoId(52816d3370c68c2c1c9f0500)',$atomic'=>'true')), 
array('$set'=>array('keywordsValue.$'=>new MongoId($idNewValue)))); 

Но это не работает ...

ответ

0

попробовать
массива ('$ набор' => массив ('keywordsValue' => новый Mongoid ($ idNewValue))));


вместо

array('$set'=>array('keywordsValue.$'=>new MongoId($idNewValue)))); 


я надеюсь, что это поможет вам!

+0

К сожалению, я был типичной ошибкой ... но это не проблема – user222914

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