Backend study
Mongo db의 Array정보의 find,update,delete 실습
Daejeong Kim
2021. 8. 10. 22:06
# 하나 추가
> db.user.insertOne({uid: "uid1", name: "name1", email: "email1"})
> db.user.find({}, {_id: 0})
{ "uid" : "uid1", "name" : "name1", "email" : "email1" }
# db 배열에 아이템 하나 추가하기
> db.user.updateOne({uid: "uid1"}, { $push: { db: {did: "did1", name: "db1"} } })
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
> db.user.find({}, {_id: 0})
{ "uid" : "uid1", "name" : "name1", "email" : "email1", "db" : [ { "did" : "did1", "name" : "db1" } ] }
# db 배열에 아이템 여러개 추가하기
> db.user.updateOne(
{uid: "uid1"},
{ $push:
{
db: {
$each: [
{did: "did2", name: "db2"},
{did: "did3", name: "db3"}
]
}
}
})
> db.user.find({}, {_id: 0})
{ "uid" : "uid1", "name" : "name1", "email" : "email1", "db" : [ { "did" : "did1", "name" : "db1" }, { "did" : "did2", "name" : "db2" }, { "did" : "did3", "name" : "db3" } ] }
# db안에 db3인 요소만 제거
> db.user.updateOne(
{uid: "uid1"},
{ $pull: {
db: { did: "did3" }
}
})
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
> db.user.find({}, {_id: 0})
{ "uid" : "uid1", "name" : "name1", "email" : "email1", "db" : [ { "did" : "did1", "name" : "db1" }, { "did" : "did2", "name" : "db2" } ] }
# db안에 did2인 요소의 name을 수정하기
Update Arrays in a Document — Node.js (mongodb.com)
> db.user.updateOne(
{uid: "uid1", "db.did": "did2"},
{ $set: { "db.$.name": "name22" } }
)
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
> db.user.find({}, {_id: 0})
{ "uid" : "uid1", "name" : "name1", "email" : "email1", "db" : [ { "did" : "did1", "name" : "db1" }, { "did" : "did2", "name" : "name22" } ] }
>
# array에 매치된 document 찾기
> db.user.find({
"db.did": "did1"
})
{ "_id" : ObjectId("611361f9bef2364fbcaf7d3f"), "uid" : "uid1", "name" : "name1", "email" : "email1", "db" : [ { "did" : "did1", "name" : "db1" }, { "did" : "did2", "name" : "name22" } ] }