MongoDB数据库常用28条查询语句总结

yizhihongxing

MongoDB数据库常用28条查询语句总结

1. 数据库操作

创建/使用数据库

通过 use 关键字可以选择或创建数据库,例如 use mydb 将会创建名称为 mydb 的数据库并使用它。

查看所有数据库

执行 show dbs 可以查看所有的数据库列表。

删除数据库

执行 db.dropDatabase() 可以删除当前数据库。

2. 集合操作

创建集合

使用 db.createCollection(name, options) 方法可以创建集合,例如 db.createCollection('user') 创建名称为 user 的集合。

查看集合

通过 show collections 命令可以查看当前数据库的所有集合。

删除集合

执行 db.collection_name.drop() 可以删除指定的集合,例如 db.user.drop() 将会删除名称为 user 的集合。

3. 文档操作

插入文档

使用 db.collection_name.insert(document) 方法可以插入新的文档,例如 db.user.insert({name: 'John', age: 30}) 将会向 user 集合插入一条新文档。

查询文档

使用 db.collection_name.find(query, projection) 方法可以查询文档,其中 query 为查询条件,projection 为筛选字段,例如 db.user.find({name: 'John'}, {name: 1}) 将会查询 user 集合中名为 John 的文档,只返回 name 字段。

更新文档

使用 db.collection_name.update(query, update, options) 方法可以更新文档,其中 query 为更新条件,update 为更新内容,options 为更新选项,例如 db.user.update({name: 'John'}, {$set: {age: 31}}) 将会将名为 John 的文档中的 age 字段更新为 31。

删除文档

使用 db.collection_name.remove(query) 方法可以删除文档,其中 query 为删除条件,例如 db.user.remove({name: 'John'}) 将会删除 user 集合中名为 John 的文档。

示例1

假设有一个名为 books 的集合,其中每个文档包含以下字段:

  • _id: ObjectId类型,自动生成的文档ID
  • title: 字符串类型,书名
  • author: 字符串类型,作者名
  • price: 数值类型,书的单价
  • stock: 数值类型,书的库存

要求查询价格低于50元或者库存少于10本的图书,并返回它们的书名和价格字段。

解决方法:

db.books.find({
    $or: [
        {price: {$lt: 50}},
        {stock: {$lt: 10}}
    ]
},
{
    title: 1,
    price: 1,
    _id: 0
})

输出示例:

{ "title" : "JavaScript入门", "price" : 38 }
{ "title" : "Node.js实战", "price" : 49 }
{ "title" : "Python爬虫入门", "price" : 32 }
{ "title" : "数据科学", "price" : 56 }
{ "title" : "C#基础教程", "price" : 45 }
{ "title" : "C++快速入门", "price" : 29 }
{ "title" : "Java高级开发", "price" : 58 }

示例2

假设有一个名为 users 的集合,其中每个文档包含以下字段:

  • _id: ObjectId类型,自动生成的文档ID
  • name: 字符串类型,用户名
  • age: 数值类型,用户年龄
  • gender: 字符串类型,用户性别
  • hobbies: 数组类型,用户兴趣爱好列表(包含字符串类型的元素)

要求查询名为 John 的用户,并更新其兴趣爱好列表为 ['reading', 'swimming']

解决方法:

db.users.update({name: 'John'}, {$set: {hobbies: ['reading', 'swimming']}})

输出示例:更新成功返回 WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) ,查询 db.users.find({name: 'John'}) 返回 {"_id" : ObjectId("5fece5d2407c6a141c5738d5"), "name" : "John", "age" : 30, "gender" : "male", "hobbies" : [ "reading", "swimming" ]}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MongoDB数据库常用28条查询语句总结 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • Centos8安装mysql8的详细过程(免安装版/或者二进制包方式安装)

    以下是CentOS 8安装MySQL 8的详细过程。 准备工作 在开始安装之前,需要在CentOS 8上安装一些依赖项以支持MySQL 8。在终端中运行以下命令: sudo dnf install wget curl vim sudo dnf install libaio sudo dnf install numactl 这些命令将安装wget、curl和v…

    database 2023年5月22日
    00
  • 了解Linux

    了解 Linux 的完整攻略包括以下几个步骤: 1. 安装 Linux 操作系统 首先,需要下载并安装一个 Linux 操作系统。目前,广泛使用的 Linux 操作系统有 Ubuntu、Debian、Fedora、CentOS 等等。可以选择自己喜欢的操作系统,并查看官方教程进行安装。 示例:如果你是一个初学者,建议使用 Ubuntu 操作系统。你可以访问 …

    database 2023年5月22日
    00
  • MySQL 视图、函数和存储过程详解

    MySQL 视图、函数和存储过程详解 在 MySQL 中,视图、函数和存储过程是三个重要的概念,它们都可以用来简化和优化 SQL 操作。本文将详细讲解这三个概念以及它们的用法,帮助读者更好地理解和应用它们。 视图(VIEW) 视图是一种虚拟的表,它是基于 SQL 查询结果的一张表,视图中的数据并不存储在数据库中,而是在查询结果的基础上进行展示。视图可以对多张…

    database 2023年5月22日
    00
  • 盘点SqlServer 分页方式和拉姆达表达式分页

    下面是关于“盘点SqlServer 分页方式和拉姆达表达式分页”的完整攻略。 SqlServer 分页方式 SqlServer 分页方式一般使用 OFFSET…FETCH 子句完成,其基本语法如下: SELECT [column1], [column2], … FROM [table_name] ORDER BY [column1] [ASC|DESC]…

    database 2023年5月21日
    00
  • Transactional replication(事务复制)详解之如何跳过一个事务

    当使用事务复制(Transactional replication)时,如何跳过一个事务是个常见的问题。在某些情况下,如果在传输事务期间出现问题,可能需要跳过一个事务,以确保数据复制正常运行。 下面是跳过事务的详细步骤: 步骤 1:查找要跳过的事务 首先,需要查找要跳过的事务。可以通过执行以下查询来获得当前正在复制的事务的详细信息: SELECT * FRO…

    database 2023年5月21日
    00
  • 安装Oracle加载数据库错误areasQueries的解决

    下面是详细讲解“安装Oracle加载数据库错误areasQueries的解决”的完整攻略。 问题描述 在安装Oracle时,有些用户可能会遇到以下错误信息:“加载数据库错误areasQueries”,该错误会导致用户无法继续进行数据库的安装以及正常使用。这个错误是由于Oracle数据库需要首先加载一些必要的库和配置文件,才能正常启动,而如果这些文件出现问题或…

    database 2023年5月22日
    00
  • Redis事务和分布式锁

    Redis事务   Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis最小的执行单位,一个事务中的命令要么都执行,要么都不执行。Redis事务的实现需要用到 MULTI 和 EXEC 两个命令,事务开始的时候先向Redis服务器发送 MULTI 命令,然后依次发送需要在本次事务中处理的命令,最后再发送 EXEC 命令表…

    Redis 2023年4月11日
    00
  • Java之System.getProperty()的作用及使用说明

    Java之System.getProperty()的作用及使用说明 在Java中,System.getProperty()是一个非常实用的方法,它可以获取系统属性信息。本文将详细介绍System.getProperty()方法的作用、参数和返回值,并带有两个示例说明。 作用 System.getProperty()方法用于获取指定的系统属性。这些系统属性可能…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部