MongoDB 语法语句【增删改查】
01、建立连接 :mongo
02、显示所有数据的列表 : show dbs
03、创建数据库[或切换到某个数据库] : use jtdb
(如果想把数据库创建成功,必须要插入一条数据,数据库中不能直接插入数据,只能往集合(cellections)中插入数据,
创建集合:db.createCollection("user")
04、查看当前数据库名称 : db
05-1、往user集合中插入数据 :db.user.insert({"name":"abc","age":"20"})
插入多条数据 :db.user.insertMany([{name:"孙悟空",age:20},{name:"沙悟净",age:22},{name:"猪八戒",age:18}])
db.user.insertMany( [ {name:"孙悟空",age:20}, {name:"沙悟净",age:22}, {name:"猪八戒",age:18} ] )
05-2、用 for 循环插入多条数据:跟 js 语法差不多
for(var i = 1; i <=100;i++) { db.user.insert({name: "jty"+i,age:i}) }
删除:
06-1:删除数据库 : db.dropDatabase()
06-2:删除 user 集合 : db.user.drop()
06-3:删除性别为 male 的数据 : db.user.deleteMany({sex:"male"})
06-4、清空集合里的数据:db.user.deleteMany({})
也可以用 db.user.remove({}) 不过这个旧方法,官方不推荐了。
06-5、删除猪八戒和孙悟空的数据:db.user.deleteMany({$or:[{name:"猪八戒"},{name:"孙悟空"}]})
【注:删除集合或者清空集合里边的数据是不会释放空间的,可以参考 https://www.cnblogs.com/gaoyuechen/p/10242851.html 或 https://www.cnblogs.com/panchanggui/p/9704949.html】
更改:
07-1、更改集合名词:
07-2、更改数据,只修改第一条
db.user.update( {'name':'卷帘大将'}, { $set: {'name':'沙僧',age:25} } )
07-3、更改数据,修改多条,在后面添加 {multi:true}
db.user.update( {'name':'沙僧'}, { $set: {'name':'卷帘大将',age:30} }, {multi:true} )
07-4、save() 方法更新一条数据,
如果 【_id 存在且相同】 的话,就执行更新;
如果 【_id 存在但不相同】 的话,就添加;
如果 不包含 _id 参数,则添加新数据。
db.user.save( { "_id" : ObjectId("5fbdcfdb836f5814526c25b9"), "name" : "唐僧", "age" : 94, "sex" : "male" } )
查找:
08-1、查找所有:db.user.find()
08-2、格式化方式查看:db.user.find().pretty()
08-3、条件查找【查找小于20的】 :db.user.find({age:{$lt:20}})
-
- (>) 大于 - $gt
- (<) 小于 - $lt
- (>=) 大于等于 - $gte
- (<= ) 小于等于 - $lte
- ( != ) 不等于 - $ne
08-4、查看已存在的集合:show collections
08-5、查找name,并过滤掉name中相同的数据 : db.user.distinct("name")
08-6、查找age=22的数据 : db.user.find({"age"=22})
08-7 、查找猪八戒和孙悟空的数据:
db.user.find( { $or: [ {name:"猪八戒"}, {name:"孙悟空"} ] } )
08-8 、查找 (age<=20且sex=male)或(age>20且sex=female)的数据:
db.user.find( { $or: [ {age:{$lte:20},sex:"male"}, {age:{$gt:20},sex:"female"} ] } )
08-9、AND 和 OR 联用:在 age=>20 的范围中查找 【(name为沙僧,sex为male)或者 (sex为female)】的数据
db.user.find( { age:{$gte:20}, $or: [ {name: "沙僧",sex:"male"}, {sex:"female"} ] } )
08-10、查找 【20<=age<=40 且不等于 30 ,sex为male 】 的数据 :
db.user.find( { age:{$gte:20,$lte:40,$ne:30}, sex:"male" } )
08-11、limit() 查询两条数据:db.user.find().limit(2)
limit() 中部加数字则代表查询所有数据。
08-12、skip() ,参数是数字类型,默认为0,表示跳过多少条数据;如果没有参数就代表跳过0条:
跳过前面两条,从第三条开始,展示到第六条。 db.user.find().limit(4).skip(2)
08-13、 skin().limit() 配合,做出分页效果。
var pageNumber = 1,pagesize = 10; db.user.find().skip((pageNumber-1)*pagesize).limit(pagesize)
08-14、查看数据的总条数:db.user.count()
08-15、排序查看数据:1 表示升序,-1 表示降序
按年龄降序,显示整条数据: db.user.find().sort({age:-1})
按年龄降序,显示名称: db.user.find({},{name:1,_id:0}).sort({age:-1})
* skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()。

浙公网安备 33010602011771号