【mongoDB】学习(二)robot 3T 学习简单的CRUD

(二)robot 3T 学习简单的CRUD

1、create

//插入一条
db.getCollection('auth_users').insert(
{
    "userName" : "test007",
    "phone" : "13800001237",
    "password" : "123456"
})
//插入多条数据(初始化插入数据,为后面的查询做准备)
db.getCollection('auth_users').insertMany([
{
    "userName" : "test015",
    "phone" : "13800001230",
    "password" : "123456",
    "age" : 20,
    "isLive" : 0
},
{
    "userName" : "test014",
    "phone" : "13800001231",
    "password" : "123456",
    "age" : 28,
    "isLive" : 1,
    "class" : [ 
        "语文", 
        "英语"
    ]
},
{
    "userName" : "test013",
    "phone" : "13800001232",
    "password" : "123456",
    "age" : 33,
    "class" : [ 
        "语文", 
        "英语", 
        "数学"
    ]
},
{
    "userName" : "test012",
    "phone" : "13800001233",
    "password" : "123456",
    "age" : 45,
    "friends" : [ 
        {
            "fname" : "ff11",
            "fsex" : 0
        }, 
        {
            "fname" : "ff22",
            "fsex" : 1
        }
    ]
},
{
    "userName" : "test011",
    "phone" : "13800001237",
    "password" : "123456",
    "age" : 19,
    "friends" : [ 
        {
            "fname" : "ff11",
            "fsex" : 0
        }
    ]
}]
)

2、read

//查找username 等于test001的人员信息,与where username=‘test001’相同
db.getCollection('auth_users').find({"userName":"test001"})
//查找username 含有007的人员信息,与 username like ‘%007%’相同
db.getCollection('auth_users').find({"userName":{"$regex":"007"}})
//计数
db.getCollection('auth_users').find({}).count()
//=
db.getCollection('auth_users').find({"age":{"$eq":20}})
//!=
db.getCollection('auth_users').find({"age":{"$ne":20}})
//>
db.getCollection('auth_users').find({"age":{"$gt":20}})
//<
db.getCollection('auth_users').find({"age":{"$lt":20}})
//>=
db.getCollection('auth_users').find({"age":{"$gte":20}})
//<=
db.getCollection('auth_users').find({"age":{"$lte":20}})
//in
db.getCollection('auth_users').find({"age":{"$in":[20,19]}})
//not in
db.getCollection('auth_users').find({"age":{"$nin":[20,19]}})
//$exists 存在,如果true则后续可以继续对该信息增加条件,反之则不用
db.getCollection('auth_users').find({"isLive":{"$exists":false}})
db.getCollection('auth_users').find({"isLive":{"$exists":true,"$in":[0,2]}})
//$size 对存在array的数据用 size进行筛选
db.getCollection('auth_users').find({"friends":{"$exists":true,"$size":2}})
//$all 针对array进行查询,并且全包含才会被查询出来
db.getCollection('auth_users').find({"class":{"$all":[ "语文", "英语","数学"]}})
//$and 语法{key1:value1, key2:value2}
db.getCollection('auth_users').find({"age":{"$gte":20},"class":{"$size":2}})
//$or 语法 $or: [{key1: value1}, {key2:value2}]
db.getCollection('auth_users').find(
{"$or":
  [
    {
        "age":{"$gt":30}
    }
    ,{
        "friends":{"$exists":true,"$size":2}
    }
  ]
}
)

3、update

/*
db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
*/

db.getCollection('auth_users').find({"age":{"$lte":20}})
db.getCollection('auth_users').update(
{"age":{"$lte":20}},
{"$set":{"isLive":1}},
{
  upset:true,
  multi:true
}
)
/*
save() 方法通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入
db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)
*/
db.getCollection('auth_users').save(
{
    "_id" : ObjectId("5ed51582ee0e9ba7508fd6c0"),
    "userName" : "test001",
    "phone" : "13800001230",
    "password" : "123456",
    "age" : 20,
    "isLive" : 1.0,
    "class":["历史"]
}
)

4、delete

/*
db.collection.remove(
   <query>,
   <justOne>
)
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
*/
db.getCollection('auth_users').find({"age":{"$gte":40}})
db.getCollection('auth_users').remove({"age":{"$gte":40}},{justOne:true})
//如果想删除所有数据:
db.col.remove({})

https://www.runoob.com/mongodb/mongodb-remove.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章