【问题标题】:Mongodb updating an embedded fieldMongodb 更新嵌入字段
【发布时间】:2015-06-24 01:54:57
【问题描述】:
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 项,为 EmployeId = "1" 设置 EmployName = "Patrick Power",因为该员工存在:

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

这是我一直在尝试做的,但它不起作用?

我做错了什么?

【问题讨论】:

标签: mongodb nosql


【解决方案1】:

这可能对你有帮助:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 2013-11-05
    • 2012-03-25
    • 2016-12-18
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多