mongoDB数据库中的一些基本使用方法

5.3--------www.docs.mongdb.com
5.3.1-----数据库-查询
db.student.find({"_id" : ObjectId(“5e0c1588cebf0b801ffcdbd0”)})
db.student.find({age:18})
db.student.find({age:18}).length() 查询条数
db.student.findOne({sex:“男”}) findOne之查找一条(首条内容)
db.student.find().length() 或 db.student.find().count 查询条数

  5.3.2-----数据库-更新   操作符地址:www.mongodb.org.cn
     db.collection.updataOne(<filter>,<updata>,<options>)          更新第一条
     db.collection.updataMany(<filter>,<updata>,<options>)        更新多条
         db.student.updateMany({"sex":"男"},{$set:{
             friend:"哈哈"
          }})
     db.collection.replaceOne(<filter>,<updata>,<options>)          更新任意一条
     db.student.update({"name":"王五"},{$set:{                           使用$set 更新设置内容   默认只会更新一条   
          age:888,
          friend:"王菲"
        }})
    db.student.update({"friend":"哈哈"},{$set:{                         更新多条与updateMany一样
          hobby:"故事"
       }},{
          multi:true
       })
    db.student.update({"name":"王五"},{$unset:{                       使用$unset  删除设置内容
          friend:"王菲"
       }})
 5.3.3-----数据库-删除
    db.collection.deleteMany()               删除多条
    db.collection.deleteOne()                 删除一条
    db.collection.remove(     中文文档
      <query>        (可选)删除的文档的条件
      <justOne>     (可选)如果设置为1或者true,则只删除一个文档,不进行设置,则,删除全部匹对的
     )
      db.student.remove({"sex":"男"},true)
      db.student.remove({})                    删除所有的内容
   删除数据后,在数据库中仍保留数据,但用户却看不见---------
     db.student.insert([
            {name:"哈哈哈11",age:99,sex:"男",isDel:0},
            {name:"呵呵呵22",age:88,sex:"女",isDel:0}
       ])

     db.student.update({"_id" : ObjectId("5e0c363137db8f3e2ee264ff")},{
            $set:{
            isDel:1
           }
       })

    db.student.find({name:"呵呵呵22",isDel:0})

5.3.3-----练习
//1.创建并进入xiaodai数据库
use xiaodai
db
//2.向数据库的colleges集合中插入六个文档数据(HTML,JAVA,VUE,Python,区块链,小程序-“是世界上最好的小程序”)
db.colleges.insert([
{name:“HTML”},
{name:“JAVA”},
{name:“VUE”},
{name:“Python”},
{name:“区块链”},
{name:“小程序”,intro:“是世界上最好的小程序”}
])
//3.查询colleges集合中的文档
db.colleges.find();
//4.向数据库的colleges集合中插入一个文档(hai)
db.colleges.insert({name:“hai”})
//5.统计数据库colleges集合中的文档数量
db.colleges.find().length();
//6.查询数据库colleges集合中name为HTML的文档
db.colleges.find({name:“HTML”})
//7.向数据库colleges集合中的name为HTML的文档,添加一个intro属性,属性值为“你好啊”
db.colleges.update({name:“HTML”},{KaTeX parse error: Expected 'EOF', got '}' at position 18: …t:{intro:"你好啊"}}̲) //8.使…set:{name:“大数据”}})
//9.删除name为小程序文档的intro属性
db.colleges.update({name:“小程序”},{KaTeX parse error: Expected 'EOF', got '}' at position 16: unset:{intro:1}}̲) //10.…set:{classes:{base:[“h5+h3”,“js”,“boostrap”,“111”],core:[“大数据”,“node.js”]}}})
//11查询有核心课程为 区块链
db.colleges.find({“classes.core”:“大数据”})
//12.向name为HTML文档中,添加一个核心课程“php”
db.colleges.update({name:“HTML”},{KaTeX parse error: Expected 'EOF', got '}' at position 28: …es.core":"php"}}̲) //13.…pop:{“classes.base”: 1}})
//删除第一个值:{KaTeX parse error: Expected 'EOF', got '}' at position 15: pop:{field:-1}}̲ //删除最后…pop:{field:1}}
//14.删除colleges集合
db.colleges.remove({})
db.colleges.drop()
//16.查询student中counter为666的文档
db.student.find({counter:666})
//17.查询student中counter小于666的文档
db.student.find({counter:{KaTeX parse error: Expected 'EOF', got '}' at position 7: lt:666}̲}) //18…gt:666}})
//19.查询student中counter大于33小于666的文档
db.student.find({counter:{ g t : 33 , gt:33, lt:666}})
//20查看studente集合中的前10条数据
db.student.find({counter:{KaTeX parse error: Expected 'EOF', got '}' at position 6: lt:10}̲}) db.s…gt:20000}})
//25.查询工资大于等于10000-20000之间的员工
db.section.find({wages:{ g t e : 10000 , gte:10000, lte:20000}})
//26.为所有新资低于10000的员工增加工资1000元
db.section.updateMany({wages:{KaTeX parse error: Expected 'EOF', got '}' at position 10: lte:10000}̲},{inc:{wages:1000}})
//27.查询工资大于10000或20000之间的员工
db.section.find({KaTeX parse error: Expected '}', got 'EOF' at end of input: or:[{wages:{lt:10000},{wages:{$gt:20000}}]})

5.4-----集合间关系
5.4.1------一对一关系 例如:身份证<---->一个人 在MongoDB,可以通过内嵌文档的形式来体现一对一
db.aAndb.insert([
{name:“杨过”,wife:{name:“小龙女”,sex:“女”},sex:“男”},
{name:“四爷”,wife:{name:“刘诗诗”,sex:“女”},sex:“男”}
])
5.4.1------一对多关系 例如:一对父母---->多个孩子
db.weibo.insert([
{weibo:“稀罕你耶”},
{weibo:“哈哈哈!!!”}
])
db.weibo.find();
db.comments.insert([
{weibo_id:ObjectId(“5e0c5fbf7f524fab60f4e436”),list:[“我也稀罕你”,“那真好”]},
{weibo_id:ObjectId(“5e0c5fbf7f524fab60f4e437”),list:[“呵呵呵”,“六六六”]}
])
db.comments.find();

//根据微博id查询commits对应的内容
var weibo_id = db.weibo.findOne({“weibo”:“稀罕你耶”})._id;
db.comments.find({weibo_id :weibo_id })
5.4.1------多对多关系 例如:老师<---->学生 在MongoDB,可以通过多文档关联
db.teacher.insert([
{name:“无名”,s_id:[ObjectId(“5e0c62a07f524fab60f4e43f”),ObjectId(“5e0c62a07f524fab60f4e440”)]},
{name:“李白”},
{name:“杜甫”}
])
db.teacher.find()

db.student.insert([
{name:“张三”,t_id:[ObjectId(“5e0c622d7f524fab60f4e43c”),ObjectId(“5e0c622d7f524fab60f4e43d”)]},
{name:“李四”,t_id:[ObjectId(“5e0c622d7f524fab60f4e43e”),ObjectId(“5e0c622d7f524fab60f4e43d”)]}
])
db.student.find()

//拿到老师的id,去学生数据库中找对应的学生
var teacher_id =db.teacher.findOne({“name”:“无名”})._id
db.student.find({t_id:teacher_id})

5.4-----排序和索引
5.4.1----排序
<1>查询文档时,默认情况是按照_id的值排序(升序)
<2>sort()可以用来指定文档的排序规则,sort()内部需要传递一个对象来指定文档的排序规则,其中1表示升序,-1表示降序
<3>limit(限制个数) skip(确定个数,第几个开始) sort的顺序可以任意改变,运行是会自动调整
eg: db.sellection.find().sort({wages:1,_id:-1}); 相同的数据会按照id来排序

5.4.1----索引:
<1> 在部分需求中,有时候只需要一个文档中的部分数据,这时候就通过映射
<2>在查询时,可以在第二个参数来设置查询的结构投影
eg: db.sellection.find({},{name:1,sex:0}) 显示name列数据 ,隐藏sex列数据。1表示显示,0表示隐藏
---------------------------------------------
均有mongoDB可视化NoSQL Manager软件和工具----

发布了23 篇原创文章 · 获赞 0 · 访问量 564

猜你喜欢

转载自blog.csdn.net/weixin_46113485/article/details/103793109