mongoDB 접속
$ mongosh mongodb://localhost:27017/testDB?authSource=admin --username jamie
넣을 데이터
db.inventory.insertMany( [
{ "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" },
{ "item": "notebook", "qty": 50, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "A" },
{ "item": "paper", "qty": 100, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "D" },
{ "item": "planner", "qty": 75, "size": { "h": 22.85, "w": 30, "uom": "cm" }, "status": "D" },
{ "item": "postcard", "qty": 45, "size": { "h": 10, "w": 15.25, "uom": "cm" }, "status": "A" }
]);
넣은 데이터
> db.inventory.insertMany( [
... { "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" },
... { "item": "notebook", "qty": 50, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "A" },
... { "item": "paper", "qty": 100, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "D" },
... { "item": "planner", "qty": 75, "size": { "h": 22.85, "w": 30, "uom": "cm" }, "status": "D" },
... { "item": "postcard", "qty": 45, "size": { "h": 10, "w": 15.25, "uom": "cm" }, "status": "A" }
... ]);
{
acknowledged: true,
insertedIds: {
'0': ObjectId("5fc7073b3085257df0982753"),
'1': ObjectId("5fc7073b3085257df0982754"),
'2': ObjectId("5fc7073b3085257df0982755"),
'3': ObjectId("5fc7073b3085257df0982756"),
'4': ObjectId("5fc7073b3085257df0982757")
}
}
db.inventory.insertOne(
{ "item" : "canvas",
"qty" : 100,
"tags" : ["cotton"],
"size" : { "h" : 28, "w" : 35.5, "uom" : "cm" }
}
)
db.inventory.insertMany([
{ "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" }
])
분명 가이드엔 mongoDB 설치시에 같이 설치된다고 했지만 아무리 찾아봐도 없다! 찾아보니 버전마다 다르지만, 최근 버전에는 포함되어있지 않아서 별도로 다운로드를 해야했다. Database-tool을 다운받으면 mongoimport는 물론이고, bsondump, mongodump, mongoexport 등의 실행 파일들이 다운로드 받아지는데 이를 모두 기존 설정했던 환경변수 위치에 넣어주고 source로 반영해주었다.
MongoDB 인스턴스로 데이터를 대량으로 가져오는 방법
json 파일이 필요
$ vi inventory.json # 저장하기
{ "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" }
{ "item": "notebook", "qty": 50, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "A" }
{ "item": "paper", "qty": 100, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "D" }
{ "item": "planner", "qty": 75, "size": { "h": 22.85, "w": 30, "uom": "cm" }, "status": "D" }
{ "item": "postcard", "qty": 45, "size": { "h": 10, "w": 15.25, "uom": "cm" }, "status": "A" }
$ cat inventory.json # 확인하기
{ "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" }
{ "item": "notebook", "qty": 50, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "A" }
{ "item": "paper", "qty": 100, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "D" }
{ "item": "planner", "qty": 75, "size": { "h": 22.85, "w": 30, "uom": "cm" }, "status": "D" }
{ "item": "postcard", "qty": 45, "size": { "h": 10, "w": 15.25, "uom": "cm" }, "status": "A" }
import 명령어
$ mongoimport --db <db name> --collection <collection name> \
--authenticationDatabase admin --username <user> --password <password> \
--drop --file <file path(절대/상대 모두 가능)>
# 고치면 - 암호는 제외하고 따로 입력받았다!
$ mongoimport --db testDB --collection inventory \
--authenticationDatabase admin --username jamie \
--drop --file ./inventory.json
Enter password:
2020-12-02T16:15:21.264+0900 connected to: mongodb://localhost/
2020-12-02T16:15:21.264+0900 dropping: testDB.inventory
2020-12-02T16:15:21.328+0900 5 document(s) imported successfully. 0 document(s) failed to import.
파일을 잘 읽어서 데이터를 넣은 것을 확인할 수 있다!
> use testDB
> db.inventory.find({})
[
{
_id: ObjectId("5fc73f0993426845fee7ba69"),
item: 'journal',
qty: 25,
size: { h: 14, w: 21, uom: 'cm' },
status: 'A'
},
{
_id: ObjectId("5fc73f0993426845fee7ba6a"),
item: 'postcard',
qty: 45,
size: { h: 10, w: 15.25, uom: 'cm' },
status: 'A'
},
{
_id: ObjectId("5fc73f0993426845fee7ba6b"),
item: 'notebook',
qty: 50,
size: { h: 8.5, w: 11, uom: 'in' },
status: 'A'
},
{
_id: ObjectId("5fc73f0993426845fee7ba6c"),
item: 'paper',
qty: 100,
size: { h: 8.5, w: 11, uom: 'in' },
status: 'D'
},
{
_id: ObjectId("5fc73f0993426845fee7ba6d"),
item: 'planner',
qty: 75,
size: { h: 22.85, w: 30, uom: 'cm' },
status: 'D'
}
]
MongoDB 공식 가이드 - https://docs.mongodb.com/guides/server/read_queries/
MongoDB 공식 가이드(import) - https://docs.mongodb.com/guides/server/import/