首页 > 数据库 >Mongodb

Mongodb

时间:2024-06-02 15:31:59浏览次数:21  
标签:name level Mongodb db testCollection find users

什么是MongoDB?

MongoDB是一个基于分布式文件存储的NoSQL数据库,由C++语言编写,旨在为高性能、高可扩展性的应用提供存储支持。MongoDB将数据存储在一个类似JSON的二进制格式BSON中,这使得它非常灵活和高效。

启动MongoDB服务

Windows和macOS:

mongod --dbpath <your_db_path>

Linux:

sudo service mongod start

 连接到MongoDB:

mongo

基本操作
创建数据库

use testDatabase

插入文档

db.testCollection.insertOne({ name: "Alice", age: 25 })

  • users是一个未创建的文档

db.users.insertOne({name:"沙琪马"})

  • 插入多条数据到集合中

db.users.insertMany([{name:"李四"},{name:"王五"}])

查询文档

db.testCollection.find({ name: "Alice" })

  • 限制查询返回结果数量

db.testCollection.find().limit(要返回的数量)

例如,返回一条数据

db.users.find().limit(1)

  • 排序查询

db.testCollection.find().sort({level: 1})

注意:1代表升序,-1代表降序

当然也可以按照多个字段进行排序

db.testCollection.find().sort({level: 1, name: -1})

  • 条件查询

db.users.find({level:3}) 

这个代表查询 level为3的数据

注意:Mongodb的数据类型是非常严格的,传入的数据类型如果错误,这不会返回任何数据

  • 限制字段

db.pokemon.find({ability1: '降雨'},{name:1,stat:1})

解释:

find()内第一个{}是查询条件,第二个{}是显示的字段,
默认会显示_id字段,可以加上_id:-1就不会返回_id字段

当然也可以排除某个字段:

db.pokemon.find({ability1: '降雨'},{name:0})

  • 比较运算符

大于

db.users.find({level:{$gt: 3}})

小于

db.users.find({level:{$lt: 3}})

$in 查询level为1或者3的数据

db.users.find({level:{$in: [1,3]}})

$nin() 查询level1和3以外的数据

db.users.find({level:{$nin: [1,3]}})

  • 逻辑运算符号

1 $exists 查询某个字段是否存在

db.users.find({email: {$exists: true}})

true也可以换为1

false也可以换为0

注意:exists是判断字段是否存在,数据即便为null也是可以返回的

2 and Mongodb会默认把两个条件and起来

db.users.find({level:{$gte: 3, $lte: 5}})

当然可以自己指定

db.users.find({$and: [{level:{$gte:3},{level:{$lte: 5}}}]})

3 or 同上

db.users.find({$or: [{level:{$gte:3},{level:{$lte: 5}}}]})

4 not 运算符

db.users.find({level: {$not: {$eq: 3}}})

5 正则表达式

db.users.find({name: {$regex: /张/ }})

  • 聚合/统计

1  countDocuments 统计文档数量

db.users.countDocuments()

当然也可以带有查询条件

db.users.countDocuments({level: {$gte: 3}})

2 findOne() 返回第一条数据

db.users.findOne({level: {$gte: 3}})

更新文档
  • 更新一条数据

db.testCollection.updateOne({ name: "Alice" }, { $set: { age: 26 } })

  • 更新多条数据

db.testCollection.updateMany({ age: 22 }, { $set: { age: 26 } })

查找年龄为22岁的,改为26岁

删除文档

db.testCollection.deleteOne({ name: "Alice" })

高级功能
聚合操作

db.testCollection.aggregate([ { $match: { age: { $gt: 20 } } }, { $group: { _id: "$age", total: { $sum: 1 } } } ])

索引

db.testCollection.createIndex({ name: 1 })

常见命令
  • 查看当前数据库:
    • db
  • 查看所有数据库:
    • show dbs
  • 查看当前数据库中的集合:
    • show collections
备份与恢复
备份数据库

mongodump --db testDatabase --out /path/to/backup

恢复数据库

mongorestore --db testDatabase /path/to/backup/testDatabase

标签:name,level,Mongodb,db,testCollection,find,users
From: https://blog.csdn.net/iku_n/article/details/139390164

相关文章

  • MongoDB CRUD操作:批量写操作
    MongoDBCRUD操作:批量写操作文章目录MongoDBCRUD操作:批量写操作关于批量操作的顺序bulkWrite()支持的方法举例向分片集合批量插入的策略预分割集合无序写入mongos避免单调节流MongoDB提供了批量执行写入操作的能力,但批量写入操作只影响单个集合,MongoDB允许应用......
  • MongoDB CRUD操作:更新文档
    MongoDBCRUD操作:更新文档文章目录MongoDBCRUD操作:更新文档更新集合中的文档更新单个文档更新多个文档文档替换在MongoDBAtlas中更新文档更新行为原子性_id字段字段顺序Upsert选项写确认可以使用下面的方式更新MongoDB集合的文档:使用编程语言提供的驱动程序,在应......
  • 用Python脚本迁移MongoDB数据到金仓-kingbase数据库
    1、首先需要明确MongoDB与kingbase的对应关系,collection相当于table,filed相当于字段,根据这个对应关系创建表;此次迁移的MongoDB里的数据字段是:_id(自动生成的objectid),image(转成二进制存储的文档)所以在金仓里创建表createtableadmin(idvarchar,imagebytea);2、安装Python环境......
  • mongodb数据库查询调优之explain方法详解
    在MongoDB中,explain()方法可以帮助我们了解查询语句的执行计划和性能。通过分析explain()的结果,我们可以找出潜在的性能问题并对其进行优化。以下是使用explain()方法对MongoDB查询语句进行优化的步骤:使用explain()方法获取查询的执行计划:db.collection.find(query).exp......
  • 使用Java API 操作MongoDB
    除了通过启动mongo进程进入Shell环境访问数据库外,MongoDB还提供了其他基于编程语言的数据库访问方法。MongoDB官方提供了编程语言的驱动包,利用这些驱动包可以使用编程方法连接并操作MongoDB数据库。想要使用 Java程序操作 MongoDB,需要确保您的电脑上已经安装了Mong......
  • 递减 MongoDB 值,防止出现负数
    我正在使用MongoDB,我有一个文档,我想在其中递增一个计数字段。但是,我需要确保该计数不会低于零。例如,如果inc为-2,而当前计数为1,那么应用$inc将导致计数为-1,而这正是我希望避免的。以下是我当前使用的更新操作:db.collection.updateMany({'_id':{'$in':object_ids}},{......
  • MongoDb索引
    MongoDb索引数据库索引类似于图书索引。有了索引便不需要浏览整本书,而是可以采取一种快捷方式,只查看一个有内容引用的有序列表。这使得MongoDB的查找速度提高了好几个数量级。不使用索引的查询称为集合扫描,这意味着服务器端必须“浏览整本书”才能得到查询的结果。MongoDB如......
  • 深入探索 MongoDB:高级索引解析与优化策略
    MongoDB是一种非常流行的NoSQL数据库,它支持丰富的索引类型和功能,以提高数据查询的效率和性能。本文将详细介绍MongoDB的高级索引,包括基本语法、常用命令、示例、应用场景、注意事项和总结。基本语法在MongoDB中,可以使用createIndex()方法创建索引,语法如下:db.col......
  • MongoDB CRUD操作:投影Project详解
    MongoDBCRUD操作:投影Project详解文章目录MongoDBCRUD操作:投影Project详解返回文档的全部字段返回指定的字段和_id字段不输出_id字段指定排除的字段返回内嵌文档中的指定字段禁止内嵌文档中的特定字段数组中内嵌文档的投影聚合表达式的投影字段默认情况下,MongoDB查......
  • MongoDb简介
    MongoDb入门MongoDB不是关系数据库,而是面向文档(document-oriented)的数据库。MongoDB的设计采用了横向扩展。面向文档的数据模型使跨多台服务器拆分数据更加容易。MongoDB会自动平衡跨集群的数据和负载,自动重新分配文档,并将读写操作路由到正确的机器上文档文档是MongoDB......