jongviet

Aug 18, 2021 - MongoDB noSQL문 본문

mongoDB

Aug 18, 2021 - MongoDB noSQL문

jongviet 2021. 8. 18. 20:31

*8월18일

-사용하면서 지속 업데이트 예정

 

*noSQLBooster for mongoDB

 

*단축키

command + enter -> 쿼리실행

 

 

*sql문

 

-비교문법

$eq    //    =

$gt  // >

$gte // >=

$lt // <

$lte // <=

$ne // !=

$nin // matches none of the values specified in an array

$in // matches any of the values specified in an array 

 

-insert

db.user.insertOne( { 

    name : "ki",

    age : 31,

    married : true  //데이터 타입은 db가 알아서 지정함;

})

 

db.user.insertMany(

    [

        {name : "brown1", age: 31, married: false},

        {name : "brown2", age: 32, married: false},

        {name : "brown3", age: 33, married: false},

        {name : "brown4", age: 34, married: false}

    ]

)

 

-find

db.user.find({})

.projection({})

.limit(100)

 

db.user.find({}) //전체검색

 

db.user.findOne(

    {name : "brown1", age: {$gt : 30}}    //greater than

)

 

db.user.find(

    { married : false, age : {$gt : 32}}  // AND 조건

)

 

db.user.find(

    {$or : [ {married: true}, {age : {$gt : 34}} ]}  // OR 조건

)

 

db.user.find({

    name : /ki/          //  %ki%

});

 

db.user.find({

    name : /^brown/      //brown%

});

 

db.user.find().count()  == db.user.count()

 

db.user.find( {

    test : { $exists: true}  //해당 필드 존재 유무에 따라서 출력, true or false

}).count()

 

db.user.find( {

    married : { $exists: true} //결혼 유무 존재 데이터 내림차

}).sort( {age : -1})

 

 

db.user.find(

    {}, {age : 1, name : 1}  // select age, name from user;

)

 

db.user.find(

    {}, {age : 1, name : 1}  // select age, name from user order by age desc limit 5;

).sort( {age : -1}).limit(5)

 

 

-update

db.user.updateMany(

    {age : { $gte : 34} },      //filter 조건

    {$set : { married : true } }  //변경 내용

)

 

db.user.updateOne(

    {name : "abrownd"}, 

    {$set : {age : 50}}

)

 

db.user.updateOne({name : "jongki"}, { $inc : {age : 3}})  //$inc 사용해서 증감 가능

db.user.updateOne({name : "jongki"}, { $inc : {age : -3}})

 

-delete

 

db.user.deleteOne({ name : "brown1"})

db.user.deleteMany(

{age : {$lte : 32}}

)

 

-Data type

objectid : 생성일 + 랜덤벨류 + incrementing counter  // 그냥 고유키, primary key 같음; 자동으로 생성됨;

int32 : 일반32bit int

 

-sort

.sort( { 정렬할 필드 : 1(오름차) or -1(내림차),  ...... } )  //여러 조건 넣을 시 같은 중괄호안에

{ $sort: { <field1>: <sort order>, <field2>: <sort order> ... } }

.sort( { _id: 1 })

 

.limit(number)

.limit(5)

 

db.SessionHistory.find({}) //db.collection(table).find, select문

 

db.SessionHistory.find({})

   .projection({})

   .sort({_id:-1})

   .limit(100)

Comments