MongoDB文件之间的关系

博客聚焦MongoDB文件之间的关系,但具体内容缺失。MongoDB是重要的数据库,了解其文件关系对数据库管理、数据存储和查询等操作有重要意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
    文档之间的关系
        一对一(one to one)
            - 夫妻  (一个丈夫   对应   一个妻子)
            
            
        一对多(one to many)/多对一(many to one )
            -父母   -孩子
             用户   -订单
             文章   -评论
             -  也可以通过内嵌文档来映射一对多的关系
             
             
             
        多对多(many to many)
            - 分类  - 商品
              老师  - 学生
*/

db.wifeAndHusband.insert([
    {
        name:"黄蓉",
        husband:{
            name:"郭靖"
        }
    },
    {
        name:"潘金莲",
        husband:{
            name:"武大郎"
        }
    }
    ])
    
    
db.wifeAndHusband.find()

//一对多   用户(users) 和 订单(orders)

db.users.insert([{
    username:"swk"
},
{
    username:"zbj"
}
])

db.users.find()


db.order.insert({
    list:["猪肉","牛肉"],
    user_id:ObjectId("5cdfbb3eab9f6950c88ce2db")
})

db.order.find({})
   .projection({})
   .sort({_id:-1})
   .limit(100)

//查找用户swk的订单
var user_id = db.users.findOne({username:"zbj"})._id

db.order.find({user_id:user_id})
   .projection({})
   .sort({_id:-1})
   .limit(100)


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

db.teachers.find({})
   .projection({})
   .sort({_id:-1})
   .limit(100)

db.stus.insert([
    {
        name:"郭靖",
        tech_ids:[
            ObjectId("5cdfbe3aab9f6950c88ce2e1"),
            ObjectId("5cdfbe3aab9f6950c88ce2e0"),
            ]
    },
    {
        name:"孙悟空",
        tech_ids:[
            ObjectId("5cdfbe3aab9f6950c88ce2e1"),
            ObjectId("5cdfbe3aab9f6950c88ce2e0"),
            ObjectId("5cdfbe3aab9f6950c88ce2df")
            ]
    }
    ])

db.stus.find({})
   .projection({})
   .sort({_id:-1})
   .limit(100)
   
db.dept.find({})
   .projection({})
   .sort({_id:-1})
   .limit(100)
   
db.emp.find({})
   .projection({})
   .sort({_id:-1})
   .limit(100)
   
   
db.emp.find({sal:{$lt: 2000}})
   .projection({})
   .sort({_id:-1})
   
   
db.emp.find({sal:{$gt: 1000,$lt: 2000}})
   .projection({})
   .sort({_id:-1})
   .limit(100)

db.emp.find({$or: [{sal:{$lt: 1000}} , {sal:{$gt: 2500}}]})
   .projection({})
   .sort({_id:-1})
   .limit(100)

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

db.emp.find({depno:deptno})
   .projection({})
   .sort({_id:-1})
   .limit(100)


//查询销售部的所有员工

var deptno = db.dept.findOne({dname:"销售部"}).deptno

db.emp.find({depno:deptno})
   .projection({})
   .sort({_id:-1})
   .limit(100)

//查询mgr为7698的所有员工
db.emp.find({mgr:7698})
   .projection({})
   .sort({_id:-1})
   .limit(100)

db.emp.find({})
   .projection({})
   .sort({_id:-1})
   .limit(100)

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

//查询文档时,默认按照_id的值进行排序(升序)
//sort()可以用来指定文档的排序规则,sort()需要传递一个对象来制定排序规则   1表示升序  -1表示降序
//limit skip sort 可以按照任意的顺序来调用

db.emp.find({}).sort({ sal:1 ,empno:1})

//在查询时,可以在第二个参数的位置来设置查询结果的投影
db.emp.find({},{ename:1,_id:0,sal:1});













 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值