MongoDB中数据库的操作(增删改查)

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB中数据库的操作(增删改查)

1.查询students集合,只返回一条数据。


db.students.findOne()
db.students.find().limit(1)
db.students.aggregate({$limit:1})

2.根据你查询出来的记录的结构,使用你自己的数据,构造一个文档,并将这个文档写入students集合。


var myself = {
    "name": "王小王-123",
    "gender": 1,
    "body": {
        "height": 166,
        "weight": 66
    },
    "phone": "1666666666",
    "sno": 2019814,
    "major": "应用数学",
    "grade": 2019,
    "class": 2,
    "courses": [
        {
            "course": "分布式数据库原理与应用",
            "credit": 4,
            "score": 99
        }
    ]
}
db.students.insert(myself)

3.根据你自己的记录数据,查询比你长得高或者和你一样高的学生记录  (比较运算符)

var 我的身高 = 166
var 查询条件 = {"body.height":{$gte:我的身高}}
db.students.find(查询条件)

4.根据你自己的记录数据,查询体重和你相差不超过2kg的学生记录


var 上限 = 66+2
var 下限 = 66-2
var 查询条件 = {"body.weight":{$gte:下限,$lte:上限}}     
db.students.find(查询条件)

5.统计你所在专业的学生人数

db.students.count({major:"应用数学"})

6.列出所有课程的名称

db.students.distinct("courses.course")

7.将你所在班级的所有同学标记为同班同学(增加一个新字段:{'关系':'同班同学'}) UPDATE操作


var 同班同学 = {"major":"应用数学","grade":2019,"class":2}
var 同班同学不包括我 = {"major":"应用数学","grade":2019,"class":2,"sno":{$ne:2019814}}
var 同班同学不包括我们 = {"major":"应用数学","grade":2019,"class":2,"sno":{$nin:[2019814,2019813]}}
db.students.find(同班同学)
var 添加字段 = {$set:{'关系':'同班同学'}}
db.students.updateMany(同班同学,添加字段)
db.students.find({'关系':'同班同学'})

8.找到你班上身高最高的3名同学,并删除这些记录


var 同班同学 = {"major":"应用数学","grade":2019,"class":2}
var 同班同学 = {'关系':'同班同学'}  // 第7题的结果
var 找同班同学 = {$match:同班同学}
var 按身高从大到校排序 = {$sort:{"body.height":-1}}
var 取头三个 = {$limit:3}
var res  = db.students.aggregate([找同班同学,按身高从大到校排序,取头三个])
db.students.delete({sno:{$in:[2016000242,2016000181,17059434737]}})

这样的命令比较的不够智能,所以我重写了一个JavaScript代码进行迭代删除,不需要自己呆板的获取前面三个数据的名称,如下:


//首先找到你班上身高最高的3名同学:
var 查询条件={"major": "应用数学","grade": 2019,"class": 2}
db.students.find(查询条件).sort({'body.height':-1}).limit(3)
//循环删除
var 查询条件={"major": "应用数学","grade": 2019,"class": 2}
var 返回结果 =db.students.find(查询条件,{_id:0,name:1}).sort({'body.height':-1}).limit(3)
for(var i=0; i<返回结果.length(); i++) {
  db.students.remove(返回结果[i])
  print(返回结果[i]);
};
//再次查询,记录已删除
var 查询条件={"major": "应用数学","grade": 2019,"class": 2}
db.students.find(查询条件).sort({'body.height':-1}).limit(3)
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
4天前
|
SQL 关系型数据库 API
HarmonyOs开发:关系型数据库封装之增删改查
每个方法都预留了多种调用方式,比如使用callback异步回调或者使用Promise异步回调,亦或者同步执行,大家在使用的过程中,可以根据自身业务需要进行选择性调用,也分别暴露了成功和失败的方法,可以针对性的判断在执行的过程中是否执行成功。
58 13
|
14天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
49 15
|
22天前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
2月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
3月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
3月前
|
存储 NoSQL MongoDB
MongoDB 数据库引用
10月更文挑战第20天
26 1
|
JSON NoSQL Java
mongoDB导出数据库所有集合内容到json文件
网上搜了一圈,官方并有提供批量导出所有集合到json文件的方法。有不少脚本可以实现,但是我还是习惯用java,如下 package starcLL.
2226 0
|
3月前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
4月前
|
存储 NoSQL 关系型数据库
非关系型数据库-MongoDB技术(二)
非关系型数据库-MongoDB技术(二)
|
4月前
|
NoSQL 关系型数据库 MongoDB
非关系型数据库-MongoDB技术(一)
非关系型数据库-MongoDB技术(一)