01. MongoDB Query Language (MQL)

SQL vs MQL

SQL : select * from table;
MQL : db.collection.find({});

02. Query Filter와 Operator


03. 기본 CRUD

-- 몽고쉘 접속
# mongosh "mongodb+srv://cluster0.eumcwhs.mongodb.net/myFirstDatabase" --apiVersion 1 --username mungyu83
# show dbs
# use test
# db.employees.insertOne({
		name: "lake",
		age: 21,
		dept: "Database",
		joinDate: new ISODate("2022-10-01"),
		salary: 400000,
		bonus: null
})
# db.employees.find()
[
  {
    _id: ObjectId("6439fd519595f6c390dd9fdc"),
    name: 'lake',
    age: 21,
    dept: 'Database',
    joinDate: ISODate("2022-10-01T00:00:00.000Z"),
    salary: 400000,
    bonus: null
  }
]

# db.employees.insertMany([
		{
				name: "ocean",
				age: 45,
				dept: "Network",
				joinDate: new ISODate("1999-11-15"),
				salary: 100000,
				resignationDate: new ISODate("2002-12-23"),
				bonus: null
		},
		{
				name: "river",
				age: 34,
				dept: "DevOps",
				isNegotiating: true
		}
])
# var docs = [];
# for(i = 0; i < 300; i++) {
		docs.push({a: i})
}
# db.insertTest.insertMany(docs);
# db.insertTest.find()
[
  { _id: ObjectId("6439ff279595f6c390dd9fdf"), a: 0 },
  { _id: ObjectId("6439ff279595f6c390dd9fe0"), a: 1 },
  { _id: ObjectId("6439ff279595f6c390dd9fe1"), a: 2 },
  { _id: ObjectId("6439ff279595f6c390dd9fe2"), a: 3 },
  { _id: ObjectId("6439ff279595f6c390dd9fe3"), a: 4 },
  { _id: ObjectId("6439ff279595f6c390dd9fe4"), a: 5 },
  ...
]
# db.employees.updateOne(
		{ name: "river" },
		{
				$set: {
						salary: 350000,
						dept: "Database",
						joinDate: new ISODate("2022-12-31")
				},
				$unset: {
						isNegotiating: ""
				}
		}
)
# db.employees.find()
...
	{
    _id: ObjectId("6439fe4b9595f6c390dd9fde"),
    name: 'river',
    age: 34,
    dept: 'Database',
    joinDate: ISODate("2022-12-31T00:00:00.000Z"),
    salary: 350000
  }

# db.employees.updateMany(
		{ resignationDate: { $exists: false }, joinDate: { $exists: true }},
		{ $mul: {salary: Decimal128("1.1")} }
)

# db.employees.find()
[
  {
    _id: ObjectId("6439fd519595f6c390dd9fdc"),
    name: 'lake',
    age: 21,
    dept: 'Database',
    joinDate: ISODate("2022-10-01T00:00:00.000Z"),
    salary: Decimal128("440000.0"),
    bonus: null
  },
  {
    _id: ObjectId("6439fe4b9595f6c390dd9fdd"),
    name: 'ocean',
    age: 45,
    dept: 'Network',
    joinDate: ISODate("1999-11-15T00:00:00.000Z"),
    salary: 100000,
    resignationDate: ISODate("2002-12-23T00:00:00.000Z"),
    bonus: null
  },
  {
    _id: ObjectId("6439fe4b9595f6c390dd9fde"),
    name: 'river',
    age: 34,
    dept: 'Database',
    joinDate: ISODate("2022-12-31T00:00:00.000Z"),
    salary: Decimal128("385000.0")
  }
]