2015-04-17 3 views
0
db.employee.insert(
{ 
_id: 'shop1', 
ShopName: 'Londis', 
ShopAddress: 'Clea boy', 
Owner: 'Tim Byrne', 
ShopContactNumber: '0877733121', 
Employee: [ 
      { 
      EmployId: '1', 
      EmployName: 'Pat Power', 
      EmployContactNumber: 0876395224, 
      EmployAddress: 'Lacka Rd', 
      Salary: 500.00, 
      Hours: 40, 
      PayType: 'Cheque', 
      Wage: 9.00, 
      EmployeeType: 'Manager' 
      }, 
      { 
      EmployId: '2', 
      EmployName: 'Craig Coad', 
      EmployContactNumber: 0873347582, 
      EmployAddress: 'Portlaw', 
      Salary: 400.00, 
      Hours: 32, 
      PayType: 'Bank', 
      Wage: 8.65, 
      EmployeeType: 'FloorStaff' 
      }, 
      { 
      EmployId: '3', 
      EmployName: 'Joe Bloggs', 
      EmployContactNumber: 0861234567, 
      EmployAddress: 'Waterford', 
      Salary: 510.00, 
      Hours: 12, 
      PayType: 'Cheque', 
      Wage: 9.50, 
      EmployeeType: 'Manager' 
      }]}); 

Я хочу обновить состояние элемента для конкретного Сотрудника. Например, я хотел бы обновить пункт 1, чтобы установить EmployName = «Патрик питания» для EmployeId = «1» потому что сотрудник существует:Mongodb обновление встроенного поля

db.students.update(
    {'_id':'shop1','Employee.EmployId':'1'}, 
    {$set:{'Employee.$.EmployName':'Patrick Power'} } 
); 

Это то, что я пытался сделать но доза не работает?

Что я делаю неправильно?

+1

возможно дубликат [Как я могу обновить поле суб документ из массива суб dcoument на основе запроса] (http://stackoverflow.com/questions/29667369/how-can-i-update-the-sub-document-field-from-the-sub-dcoument-array-based-on-the) – Yogesh

ответ

1

Это может быть полезно для вас:

db.collectionName.update({ 
"_id": "shop1", 
'Employee': { 
    '$elemMatch': { 
     'EmployId': '1' 
    } 
} 
}, { 
$set: { 
    'Employee.$.EmployName': 'Patrick Power' 
} 
}); 
+0

благодарит очень много. Работал :) –

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