MongoDB Update a Document - Set a new field value (updating first match)
godarda@gd:~$ mongosh
...
DB> show dbs
DB 72.00 KiB
admin 40.00 KiB
config 108.00 KiB
local 40.00 KiB
DB> db.getCollectionNames()
[ "holders" ]
DB> db.holders.updateOne(
... {city: 'Phoenix'},
... {$set: {currency: 'USD'}}
... )
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
DB> db.holders.find()
[
{
_id: ObjectId("6515552821cddd458cbbcc91"),
account_no: 2562348989,
name: 'James Moore',
city: 'Phoenix',
DOB: ISODate("1985-05-26T00:00:00.000Z"),
bank: 'Barclays',
amount: 5000,
loan: [ { Personal: 5660, Home: 15000 } ],
currency: 'USD'
},
{
_id: ObjectId("6515554d21cddd458cbbcc92"),
account_no: 2562348990,
name: 'Donald Taylor',
city: 'Irvine',
DOB: ISODate("1990-08-20T00:00:00.000Z"),
bank: 'Citi',
amount: 7000,
loan: [ { Home: 10000, Car: 20000 } ]
},
{
_id: ObjectId("6515554d21cddd458cbbcc93"),
account_no: 2562348991,
name: 'Edward Parkar',
city: 'Irvine',
DOB: ISODate("1994-01-29T00:00:00.000Z"),
bank: 'ICICI',
amount: 95000,
loan: [ { Personal: 25000, Home: 450000, Car: 10000 } ]
},
{
_id: ObjectId("6515554d21cddd458cbbcc94"),
account_no: 2562348992,
name: 'Ryan Bakshi',
city: 'Mumbai',
DOB: ISODate("1982-01-14T00:00:00.000Z"),
bank: 'Citi',
amount: 50000,
loan: [ { Personal: null, Home: null, Car: null } ]
}
]
Set a new field value (updating all matches)
DB> db.holders.updateMany(
... {city: 'Irvine'},
... {$set: {currency: 'USD'}},
... {multi: true}
... )
{
acknowledged: true,
insertedId: null,
matchedCount: 2,
modifiedCount: 2,
upsertedCount: 0
}
DB> db.holders.find()
[
{
_id: ObjectId("6515552821cddd458cbbcc91"),
account_no: 2562348989,
name: 'James Moore',
city: 'Phoenix',
DOB: ISODate("1985-05-26T00:00:00.000Z"),
bank: 'Barclays',
amount: 5000,
loan: [ { Personal: 5660, Home: 15000 } ],
currency: 'USD'
},
{
_id: ObjectId("6515554d21cddd458cbbcc92"),
account_no: 2562348990,
name: 'Donald Taylor',
city: 'Irvine',
DOB: ISODate("1990-08-20T00:00:00.000Z"),
bank: 'Citi',
amount: 7000,
loan: [ { Home: 10000, Car: 20000 } ],
currency: 'USD'
},
{
_id: ObjectId("6515554d21cddd458cbbcc93"),
account_no: 2562348991,
name: 'Edward Parkar',
city: 'Irvine',
DOB: ISODate("1994-01-29T00:00:00.000Z"),
bank: 'ICICI',
amount: 95000,
loan: [ { Personal: 25000, Home: 450000, Car: 10000 } ],
currency: 'USD'
},
{
_id: ObjectId("6515554d21cddd458cbbcc94"),
account_no: 2562348992,
name: 'Ryan Bakshi',
city: 'Mumbai',
DOB: ISODate("1982-01-14T00:00:00.000Z"),
bank: 'Citi',
amount: 50000,
loan: [ { Personal: null, Home: null, Car: null } ]
}
]
Unset field value (updating all matches)
DB> db.holders.updateMany(
... {account_no: {$lte: 2562348991}},
... {$unset: {currency:1}},
... {multi:1}
... )
{
acknowledged: true,
insertedId: null,
matchedCount: 3,
modifiedCount: 3,
upsertedCount: 0
}
DB> db.holders.find()
[
{
_id: ObjectId("6515552821cddd458cbbcc91"),
account_no: 2562348989,
name: 'James Moore',
city: 'Phoenix',
DOB: ISODate("1985-05-26T00:00:00.000Z"),
bank: 'Barclays',
amount: 5000,
loan: [ { Personal: 5660, Home: 15000 } ]
},
{
_id: ObjectId("6515554d21cddd458cbbcc92"),
account_no: 2562348990,
name: 'Donald Taylor',
city: 'Irvine',
DOB: ISODate("1990-08-20T00:00:00.000Z"),
bank: 'Citi',
amount: 7000,
loan: [ { Home: 10000, Car: 20000 } ]
},
{
_id: ObjectId("6515554d21cddd458cbbcc93"),
account_no: 2562348991,
name: 'Edward Parkar',
city: 'Irvine',
DOB: ISODate("1994-01-29T00:00:00.000Z"),
bank: 'ICICI',
amount: 95000,
loan: [ { Personal: 25000, Home: 450000, Car: 10000 } ]
},
{
_id: ObjectId("6515554d21cddd458cbbcc94"),
account_no: 2562348992,
name: 'Ryan Bakshi',
city: 'Mumbai',
DOB: ISODate("1982-01-14T00:00:00.000Z"),
bank: 'Citi',
amount: 50000,
loan: [ { Personal: null, Home: null, Car: null } ]
}
]
Comments and Reactions
Advertisement