【MongoDB】mongodb基本使用

1.基本使用

//进入test数据库
use test

db.getCollection('user').find({})

//查询user集合中的文档
db.user.find()

//向数据库的user集合中插入一个文档
db.user.insert({user_id:5})

db.user.deleteOne({user_id:5})

//统计数据user集合中的文档数量
db.user.find().count()

//查询数据user集合中user_name为123的文档
db.user.find({user_name:"123"})

//向数据库user集合中的user_name为test的文档,添加一个address属性,属性值为huaguoshan
db.user.update({user_name:"test"},{$set:{address:"huaguoshan"}})

//使用{user_name:"cccc"}替换{user_name:"ccc"}
db.user.replaceOne({user_name:"ccc"},{user_name:"cccc"})

//删除user_name为test的文档的address属性
db.user.update({user_name:"test"},{$unset:{address:1}})

//向user_name为test的文档中,添加一个hobby
db.user.update({user_name:"test"},{$set:{hobby:{cities:["beijing","shanghai"],movies:["ceshi","lala"]}}})

//查询喜欢电影lala的文档
db.user.find({'hobby.movies':"lala"})

//$push 向数组中添加一个新的元素
db.user.update({user_name: "test"},{$push:{"hobby.movies":"Inters"}})

//$addToSet 向数组中添加一个新的元素
db.user.update({user_name:"test"},{$addToSet:{"hobby.movies":"Inters"}})

//删除喜欢beijing的用户
db.user.remove({"hobby.cities":"beijing"})

//删除user集合
db.user.remove({})
db.user.drop()

//向numbers中插入20000条数据 7.26s
for(var i =1;i<=20000;i++){
    db.numbers.insert({num:i})
}

db.numbers.find().count()

db.numbers.remove({})

//向numbers中插入20000条数据,提供效率 0.16s
var arr = []
for(var i =1;i<=20000;i++){
    arr.push({num:i})
}
db.numbers.insert(arr)

//查询numbers中num为500的文档
db.numbers.find({num:500})

//查询numbers中num大于5000的文档
db.numbers.find({num:{$gt:500}})
db.numbers.find({num:{$eq:500}})

//查询numbers中num小于30的文档
db.numbers.find({num:{$lt:30}})

//查询numbers中大于40小于50的文档
db.numbers.find({num:{$gt:40,$lt:50}})

//查询numbers中num大于19996的文档
db.numbers.find({num:{$gt:19996}})

//查看numbers集合中的前10条数据
db.numbers.find({num:{$lte:10}})
//limit()设置显示数据的上限
db.numbers.find().limit(10)

//查看numbers集合中的第11条到20条的数据,skip((页码-1) * 每页显示的条数),limit(每页显示的条数)

db.numbers.find().skip(10).limit(10)
//查看numbers集合中的第21条到30条的数据
db.numbers.find().skip(20).limit(10)

//mongodb会自动调整skip和limit的位置
db.numbers.find().limit(10).skip(10)

2.文档之间的管理

//文档之间的关系 1.一对一  2.一对多/多对一 3.多对多
//一对一  夫妻:一夫一妻
db.wifeAndHusband.insert([{
    name:"黄蓉",
    husband:{
        name:"郭靖"
        }
    },{
         name:"潘金莲",
         husband:{
            name:"武大郎"
        }
       }
])
       
// 一对多 用户和订单,父母和孩子,文章和评论
db.use.insert([{username:"swk"},{username:"zbj"}])
db.order.insert({list:["苹果","香蕉","大鸭梨"],user_id:ObjectId("5e172dddd47162258ca193fc")})

db.order.drop()

db.wifeAndHusband.find()

db.use.find()

db.order.find()

db.order.insert({list:["牛肉","漫画"],user_id:ObjectId("5e172dddd47162258ca193fd")})

db.order.find();

//多对一,查找用户swk的订单
var user_id = db.use.findOne({username:"swk"})._id
db.order.find({user_id:user_id})

db.use.find()

//多对多
db.teachers.insert([{name:"洪七公"},{name:"黄药师"},{name:"龟仙人"}])

db.stus.insert([
{name:"郭靖",tech_ids:[ObjectId("5e17dc6756ef26db309c84ed"),ObjectId("5e17dc6756ef26db309c84ee")]},
{name:"孙悟空",tech_ids:[ObjectId("5e17dc6756ef26db309c84ed"),ObjectId("5e17dc6756ef26db309c84ee"),ObjectId("5e17dc6756ef26db309c84ef")]}
])

导入文件

//将dept和emp集合导入到数据库中

//查询工资在1000——2000之间的员工
db.emp.find({sal:{$lt:2000,$gt:1000}})

//查询工资小于1000或大于2500的员工
db.emp.find({$or:[{sal:{$lt:1000}},{sql:{$gt:2500}}]})

//查询财务部门的所用员工
var depno = db.dept.findOne({dname:"财务部"})deptno
db.emp.find({dname:deptno})

//查询所用mgr为7698的所用员工
db.emp.find({mgr:7698})

//为所用薪资低于1000的员工增加工资400元
db.emp.updateMany({sal:{$lte:1000}},{$inc:{sal:400}})

排序 sort

//查询文档时,默认情况是按照_id的值进行排序(升序)
//sort()可以用来指定文档的排序的规则,sort()需要传递一个对象来指定排序规则 1表示升序, -1表示降序
//limit skip sort 可以以任意的顺序进行调用
db.emp.find({}).sort({sal:-1})
db.emp.find({}).sort({sal:1,empno:-1})
//在查询时,可以再第二个参数的位置来设置查询结果的 投影
db.emp.find({},{ename:1,_id:0,sal:1})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值