MongoDB命令操作

MongoDB教程:https://www.runoob.com/mongodb/mongodb-tutorial.html

数据库操作

> use bbs                //创建或使用数据库

> show dbs                //查看数据库

> db.stats()              //查看数据库详情

> db.user.stats();          //查看数据库表详情

> db                         //查看当前使用数据库

> db.dropDatabase()                //删除当前使用的数据库

集合操作

> db.createCollection("user")            //创建集合

> show tables  (show collections)          //查看当前数据库中的集合

> db.user.drop()                                   //删除集合

文档操作——插入

> db.user.insert({"name":"毛毛",age:18,sex:1})                    //向user表中插入单条数据

> db.user.insertMany([{"name":"毛毛","age":18,"sex":1},{"name":"俊俊","age":18,"sex":1}])                 //向user表中插入多条数据

> db.user.find()                                                                    //查看user表中的数据

文档操作——更新

> db.user.find()                                                          //查看user表中的数据
{ "_id" : ObjectId("605bf6d9f258543704c2b573"), "name" : "毛毛", "age" : 18, "sex" : 1 }
{ "_id" : ObjectId("605bf9f3f258543704c2b574"), "name" : "毛毛", "age" : 18, "sex" : 1 }
{ "_id" : ObjectId("605bf9f3f258543704c2b575"), "name" : "俊俊", "age" : 18, "sex" : 1 }

//更新id为605bf6d9f258543704c2b573的数据(注意:这里更新的是整条数据的内容
> db.user.update({ "_id" : ObjectId("605bf6d9f258543704c2b573")},{"age":17})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

更新后的结果如下:

> db.user.find()
{ "_id" : ObjectId("605bf6d9f258543704c2b573"), "age" : 17 }
{ "_id" : ObjectId("605bf9f3f258543704c2b574"), "name" : "毛毛", "age" : 18, "sex" : 1 }
{ "_id" : ObjectId("605bf9f3f258543704c2b575"), "name" : "俊俊", "age" : 18, "sex" : 1 }

对数据指定内容更新修改,使用$set:

> db.user.update({"_id" : ObjectId("605bf9f3f258543704c2b574")},{$set:{"age":1}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.user.find()
{ "_id" : ObjectId("605bf6d9f258543704c2b573"), "age" : 17 }
{ "_id" : ObjectId("605bf9f3f258543704c2b574"), "name" : "毛毛", "age" : 1, "sex" : 1 }
{ "_id" : ObjectId("605bf9f3f258543704c2b575"), "name" : "俊俊", "age" : 18, "sex" : 1 }

在更新多条数据的时候,update只会默认更新匹配到的第一条数据:

> db.user.update({"sex":1},{$set:{"name":"毛俊刚"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.user.find()
{ "_id" : ObjectId("605bf6d9f258543704c2b573"), "age" : 17 }
{ "_id" : ObjectId("605bf9f3f258543704c2b574"), "name" : "毛俊刚", "age" : 1, "sex" : 1 }
{ "_id" : ObjectId("605bf9f3f258543704c2b575"), "name" : "俊俊", "age" : 18, "sex" : 1 }

更新匹配到的多条数据,需要增加参数multi:true:

> db.user.update({"sex":1},{$set:{"name":"毛哥"}},{multi:true})
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
> db.user.find()
{ "_id" : ObjectId("605bf6d9f258543704c2b573"), "age" : 17 }
{ "_id" : ObjectId("605bf9f3f258543704c2b574"), "name" : "毛哥", "age" : 1, "sex" : 1 }
{ "_id" : ObjectId("605bf9f3f258543704c2b575"), "name" : "毛哥", "age" : 18, "sex" : 1 }

对年龄进行自增,使用$inc:

> db.user.update({"_id" : ObjectId("605c06a8f258543704c2b577")},{$inc:{"age":10}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.user.find()
{ "_id" : ObjectId("605c06a8f258543704c2b576"), "age" : 17 }
{ "_id" : ObjectId("605c06a8f258543704c2b577"), "name" : "毛哥", "age" : 11, "sex" : 1 }
{ "_id" : ObjectId("605c06a8f258543704c2b578"), "name" : "毛哥", "age" : 18, "sex" : 1 }

文档操作——删除

删除user表中指定数据:

> db.user.remove({ "_id" : ObjectId("605c06a8f258543704c2b576")})
WriteResult({ "nRemoved" : 1 })

删除user表中所有数据:

> db.user.remove({})
WriteResult({ "nRemoved" : 2 })

文档操作——查询

> db.user.find()
{ "_id" : ObjectId("605c2cf7f258543704c2b579"), "name" : "毛毛", "age" : 18, "sex" : 1 }
{ "_id" : ObjectId("605c2d1af258543704c2b57a"), "name" : "俊俊", "age" : 19, "sex" : 1 }
{ "_id" : ObjectId("605c2d2cf258543704c2b57b"), "name" : "刚刚", "age" : 20, "sex" : 1 }
{ "_id" : ObjectId("605c2d3df258543704c2b57c"), "name" : "小毛", "age" : 21, "sex" : 1 }
{ "_id" : ObjectId("605c2d4ef258543704c2b57d"), "name" : "小毛毛", "age" : 22, "sex" : 1 }

> db.user.count({"age":{$lt:20},"sex":1})                 //查询条数
2

默认格式话查询第一条;

> db.user.findOne()

格式化查询所有:

> db.user.find().pretty()

1.条件查询:

等于示例:

> db.user.find({"age":18,"sex":1})
{ "_id" : ObjectId("605c2cf7f258543704c2b579"), "name" : "毛毛", "age" : 18, "sex" : 1 }

小于示例:

> db.user.find({"age":{$lt:20}})
{ "_id" : ObjectId("605c2cf7f258543704c2b579"), "name" : "毛毛", "age" : 18, "sex" : 1 }
{ "_id" : ObjectId("605c2d1af258543704c2b57a"), "name" : "俊俊", "age" : 19, "sex" : 1 }

大于示例:

> db.user.find({"age":{$gt:20}})
{ "_id" : ObjectId("605c2d3df258543704c2b57c"), "name" : "小毛", "age" : 21, "sex" : 1 }
{ "_id" : ObjectId("605c2d4ef258543704c2b57d"), "name" : "小毛毛", "age" : 22, "sex" : 1 }

包含示例

> db.user.find({"name":/俊/})
{ "_id" : ObjectId("605c2d1af258543704c2b57a"), "name" : "俊俊", "age" : 19, "sex" : 1 }

以...开头示例:

> db.user.find({"name":/^小/})
{ "_id" : ObjectId("605c2d3df258543704c2b57c"), "name" : "小毛", "age" : 21, "sex" : 1 }
{ "_id" : ObjectId("605c2d4ef258543704c2b57d"), "name" : "小毛毛", "age" : 22, "sex" : 1 }

在...之中示例:

> db.user.find({"age":{$in:[19,20]}})
{ "_id" : ObjectId("605c2d1af258543704c2b57a"), "name" : "俊俊", "age" : 19, "sex" : 1 }
{ "_id" : ObjectId("605c2d2cf258543704c2b57b"), "name" : "刚刚", "age" : 20, "sex" : 1 }

2. 关于and和or的使用$or:

> db.user.find({"sex":1,$or:[{"age":20},{"age":22}]})
{ "_id" : ObjectId("605c2d2cf258543704c2b57b"), "name" : "刚刚", "age" : 20, "sex" : 1 }
{ "_id" : ObjectId("605c2d4ef258543704c2b57d"), "name" : "小毛毛", "age" : 22, "sex" : 1 }

3. 分页查询:

> db.user.find().limit(2)            //查询前两条数据
{ "_id" : ObjectId("605c2cf7f258543704c2b579"), "name" : "毛毛", "age" : 18, "sex" : 1 }
{ "_id" : ObjectId("605c2d1af258543704c2b57a"), "name" : "俊俊", "age" : 19, "sex" : 1 }

> db.user.find().skip(2)         //跳过前两条数据查询
{ "_id" : ObjectId("605c2d2cf258543704c2b57b"), "name" : "刚刚", "age" : 20, "sex" : 1 }
{ "_id" : ObjectId("605c2d3df258543704c2b57c"), "name" : "小毛", "age" : 21, "sex" : 1 }
{ "_id" : ObjectId("605c2d4ef258543704c2b57d"), "name" : "小毛毛", "age" : 22, "sex" : 1 }

> db.user.find().skip(2).limit(2)                             //跳过前两条数据,查询两条数据
{ "_id" : ObjectId("605c2d2cf258543704c2b57b"), "name" : "刚刚", "age" : 20, "sex" : 1 }
{ "_id" : ObjectId("605c2d3df258543704c2b57c"), "name" : "小毛", "age" : 21, "sex" : 1 }

4. 排序查询:(sort方法可以指定排序的字段,值为1升序,值为-1降序)

> db.user.find().sort({"age":-1}).skip(2).limit(3)              //降序跳过前两条查询三条数据
{ "_id" : ObjectId("605c2d2cf258543704c2b57b"), "name" : "刚刚", "age" : 20, "sex" : 1 }
{ "_id" : ObjectId("605c2d1af258543704c2b57a"), "name" : "俊俊", "age" : 19, "sex" : 1 }
{ "_id" : ObjectId("605c2cf7f258543704c2b579"), "name" : "毛毛", "age" : 18, "sex" : 1 }

索引操作

> db.user.createIndex({"age":1})                  //创建索引

> db.user.dropIndex({"age":1})                  //删除索引
{ "nIndexesWas" : 2, "ok" : 1 }

创建索引参数设置

> db.user.createIndex({"age":1},{background:true})               //单值索引

> db.user.createIndex({"age":1,"sex":1})                          //复合索引

> db.user.getIndexes()                                         //查看索引

> db.user.dropIndex("age_1_sex_1")                  //删除指定索引
{ "nIndexesWas" : 3, "ok" : 1 }

> db.user.find({"age":1}).explain()                     //查询字段详情

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值