2016-11-03 6 views
0

Привет, ребята, так что я делаю Метеор Монго дб, я использую пакет findAndModifyMongoDB передавать данные элемента массива конкретного

Ips.findAndModify({ 

     //Find the desired document based on specified criteria 
     query: { 
     "ipAdr": clientIp, 
     connections: { 
      $elemMatch: { 
      connID: clientConnId 
      } 
     } 
     }, 

     //Update only the elements of the array where the specified criteria matches 
     update: { 
     $push: { 
      'connections': { 
      vid: result.data.vid, 
      firstName: result.data.properties.firstname.value, 
      lastName: result.data.properties.lastname.value 
     } 
     } 
    }); //Ips.findAndModify 

Так что я найти элемент, который мне нужно, однако мою информация выталкивается на целые соединения массив, но я хочу подтолкнуть свою информацию к этому конкретному элементу. Что мне здесь делать? Я попробовал

$push: { 
       'connections.$': { 
       vid: result.data.vid, 

но он дает ошибку. Пожалуйста, помогите.

+0

какая ошибка вы получаете ?? –

ответ

1

Вам не нужно использовать $ нажмите оператор здесь, поскольку это добавляет новый элемент в массив, вместо этого вы должны изменить элемент, который уже находится в массиве, попробуйте $ установить оператор обновления следующим образом:

update: { 
     $set: { 
      'connections.$.vid': result.data.vid, 
      'connections.$.firstName': result.data.properties.firstname.value, 
      'connections.$.lastName': result.data.properties.lastname.value 
     } 
     } 

Примите во внимание, что таким образом вы будете менять только один элемент массива, который удовлетворяет условию из заявления $ elemMatch.

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