广告
返回顶部
首页 > 资讯 > 数据库 >mongodb CRUD操作 -Select
  • 102
分享到

mongodb CRUD操作 -Select

2024-04-02 19:04:59 102人浏览 八月长安
摘要

https://docs.mongoDB.com/manual/reference/method/db.collection.find/ 查询文档db.collection.find(query, proj

https://docs.mongoDB.com/manual/reference/method/db.collection.find/


查询文档

db.collection.find(query, projection)



方法:

db.collection.find()


Additional Methods

  • db.collection.findOne

  • In aggregation pipeline, the $match pipeline stage provides access to MonGoDB queries.


db.inventory.insertMany([

  { item: "journal", Qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },

  { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },

  { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },

  { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },

  { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }

]);


参考:

> db.inventory.find( {} ,{_id:0})

{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }
{ "item" : "notebook", "qty" : 50, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "A" }
{ "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "D" }
{ "item" : "planner", "qty" : 75, "size" : { "h" : 22.85, "w" : 30, "uom" : "cm" }, "status" : "D" }
{ "item" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "status" : "A" }


操作必须以键值对的方式,必须用{}括起来,所以所有的查询先用{}括起来

1、Select All Documents in a Collection

db.inventory.find( {} )=db.inventory.find()


2、Specify Equality Condition

db.inventory.find( { status: "D" } )


SELECT * FROM inventory WHERE status = "D"


{ "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "D" }
{ "item" : "planner", "qty" : 75, "size" : { "h" : 22.85, "w" : 30, "uom" : "cm" }, "status" : "D" }


3、Specify Conditions Using Query Operators

db.inventory.find( { status: { $in: [ "A", "D" ] } } )


SELECT * FROM inventory WHERE status in ("A", "D")

{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }
{ "item" : "notebook", "qty" : 50, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "A" }
{ "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "D" }
{ "item" : "planner", "qty" : 75, "size" : { "h" : 22.85, "w" : 30, "uom" : "cm" }, "status" : "D" }
{ "item" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "status" : "A" }


4、Specify AND Conditions

db.inventory.find( { status: "A", qty: { $lt: 30 } } )

SELECT * FROM inventory WHERE status = "A" AND qty < 30

{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }


5、Specify OR Conditions

db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )

SELECT * FROM inventory WHERE status = "A" OR qty < 30

{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }
{ "item" : "notebook", "qty" : 50, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "A" }
{ "item" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "status" : "A" }


6、Specify AND as well as OR Conditions

db.inventory.find( {

    status: "A",

    $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]

} )

SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 OR item LIKE "p%")

{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }
{ "item" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "status" : "A" }



Additional Query Tutorials

1、Query on Embedded/Nested Documents 查询嵌入/嵌套文档(字段值是一个文档)

db.inventory.insertMany( [

  { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },

  { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },

  { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },

  { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },

  { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }

])


> db.inventory.find( {} ,{_id:0})


{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }
{ "item" : "notebook", "qty" : 50, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "A" }
{ "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "D" }
{ "item" : "planner", "qty" : 75, "size" : { "h" : 22.85, "w" : 30, "uom" : "cm" }, "status" : "D" }
{ "item" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "status" : "A" }


Match an Embedded/Nested Document

查询size字段的值是{h:14,w:21,uom:"cm"}的所有文档:(在作为嵌入/嵌套文档的字段上指定相等条件)

{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }


db.inventory.find({size:{w:21,h:14,uom:"cm"}}) 

注:文档的精确匹配,包括顺序。


db.inventory.find({size:{w:21,h:14,uom:“cm”}})// 与集合中的任何文档不匹配



Query on Nested Field

Specify Equality Match on a Nested Field

查询size字段中嵌套的字段uom的值等于“in”的所有文档:

db.inventory.find( { "size.uom": "in" } )


{ "item" : "notebook", "qty" : 50, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "A" }
{ "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "D" }



Specify Match using Query Operator

查询size字段中嵌套的字段h的值小于15的所有文档:

db.inventory.find( { "size.h": { $lt: 15 } } )


{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }
{ "item" : "notebook", "qty" : 50, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "A" }
{ "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "D" }
{ "item" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "status" : "A" }



Specify AND Condition

查询size字段中嵌套的字段h的值小于15,uom的值为“in”,status的值为“D”的所有文档:

db.inventory.find( { "size.h": { $lt: 15 }, "size.uom": "in", status: "D" } )


{ "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "D" }


2、Query an Array 查询数组(字段值是一个数组)

db.inventory.insertMany([

  { item: "journal", qty: 25, tags: ["blank", "red"], dim_cm: [ 14, 21 ] },

  { item: "notebook", qty: 50, tags: ["red", "blank"], dim_cm: [ 14, 21 ] },

  { item: "paper", qty: 100, tags: ["red", "blank", "plain"], dim_cm: [ 14, 21 ] },

  { item: "planner", qty: 75, tags: ["blank", "red"], dim_cm: [ 22.85, 30 ] },

  { item: "postcard", qty: 45, tags: ["blue"], dim_cm: [ 10, 15.25 ] }

])


参考:

{ "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }
{ "item" : "postcard", "qty" : 45, "tags" : [ "blue" ], "dim_cm" : [ 10, 15.25 ] }



Match an Array

查询数组字段tags中正好包含两个元素“red和blank”,并且顺序相同的所有文档:

db.inventory.find( { tags: ["red", "blank"] } )

注:精确匹配,包括数组中元素的顺序。


{ "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }


查询数组字段tags中包含“red”和“blank”两个元素的所有文档,不考虑数组中的顺序和其他元素:

db.inventory.find( { tags: { $all: ["red", "blank"] } } )

等同于

db.inventory.find({$and: [ { tags: "red" }, { tags: "blank" }]},{_id:0})


{ "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }





Query an Array for an Element

查询数组字段tags中包含red元素的所有文档:

db.inventory.find( { tags: "red" } )

{ "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }




查询数组字段dim_cm中至少有一个元素的值大于25的所有文档:

db.inventory.find( { dim_cm: { $gt: 25 } } )

{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }



Specify Multiple Conditions for Array Elements

Query an Array with Compound Filter Conditions on the Array Elements

查询数组字段dim_cn中一个元素的值大于15且另一个元素的值小于20,或者单个元素满足两个条件的所有文档:

db.inventory.find( { dim_cm: { $gt: 15, $lt: 20 } } )


{ "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "postcard", "qty" : 45, "tags" : [ "blue" ], "dim_cm" : [ 10, 15.25 ] }





Query for an Array Element that Meets Multiple Criteria 查询符合多个标准的数组元素

查询数组字段dim_cm中至少有一个元素的值大于22且小于30的所有文档:

db.inventory.find( { dim_cm: { $elemMatch: { $gt: 22, $lt: 30 } } } )

{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }



Query for an Element by the Array Index Position 通过数组索引位置查询元素

查询数组字段dim_cm中第二个元素的值大于25的所有文档:

db.inventory.find( { "dim_cm.1": { $gt: 25 } } )

{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }



Query an Array by Array Length

查询数组字段tags中具有三个元素的所有文档:

db.inventory.find( { "tags": { $size: 3 } } )

{ "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }

3、Query an Array of Embedded Documents 查询嵌入式文档的数组(字段值包含数组,数组里面嵌套文档)

db.inventory.insertMany( [

  { item: "journal", instock: [ { warehouse: "A", qty: 5 }, { warehouse: "C", qty: 15 } ] },

  { item: "notebook", instock: [ { warehouse: "C", qty: 5 } ] },

  { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 15 } ] },

  { item: "planner", instock: [ { warehouse: "A", qty: 40 }, { warehouse: "B", qty: 5 } ] },

  { item: "postcard", instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }

])

参考:

{ "item" : "journal", "instock" : [ { "warehouse" : "A", "qty" : 5 }, { "warehouse" : "C", "qty" : 15 } ] }
{ "item" : "notebook", "instock" : [ { "warehouse" : "C", "qty" : 5 } ] }
{ "item" : "paper", "instock" : [ { "warehouse" : "A", "qty" : 60 }, { "warehouse" : "B", "qty" : 15 } ] }
{ "item" : "planner", "instock" : [ { "warehouse" : "A", "qty" : 40 }, { "warehouse" : "B", "qty" : 5 } ] }
{ "item" : "postcard", "instock" : [ { "warehouse" : "B", "qty" : 15 }, { "warehouse" : "C", "qty" : 35 } ] }




Query for a Document Nested in an Array 查询嵌套在数组中的文档

查询数组字段instock中的嵌入式文档与指定文档匹配的所有文档:

db.inventory.find( { "instock": { warehouse: "A", qty: 5 } } )

{ "item" : "journal", "instock" : [ { "warehouse" : "A", "qty" : 5 }, { "warehouse" : "C", "qty" : 15 } ] }


注:精确匹配,包括字段的顺序。


db.inventory.find( { "instock": { qty: 5, warehouse: "A" } } ) //与集合中的任何文档不匹配。


Specify a Query Condition on a Field in an Array of Documents

您可能感兴趣的文档:

--结束END--

本文标题: mongodb CRUD操作 -Select

本文链接: https://www.lsjlt.com/news/44145.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mongodb CRUD操作 -Select
    https://docs.mongodb.com/manual/reference/method/db.collection.find/ 查询文档db.collection.find(query, proj...
    99+
    2022-10-18
  • mongoDB基本操作(二)-(CRUD)
        MongoDB的shell操作数据,用到create、read、update、delete操作。1、创建    ins...
    99+
    2022-10-18
  • Mongodb的安装与CRUD操作
    What is Mongodb                Mongo ...
    99+
    2022-10-18
  • MongoDB 常用的crud操作语句
    目录创建数据(CREATE)更新数据(Update)删除(DELETE)读取数据(READ)对于后端大神(小白)来说,每天的工作就是 CRUD,再加上 Control + C 和 C...
    99+
    2022-11-12
  • MongoDB3.4 shell CRUD操作
    MongoDB3.4 shell CRUD操作,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。对于Asp.Net Web For...
    99+
    2022-10-18
  • 怎么在.NET中使用MongoDB以及基本的CRUD操作
    这篇文章主要介绍了怎么在.NET中使用MongoDB以及基本的CRUD操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。MongoDBNoS...
    99+
    2022-10-18
  • Django中有哪些CRUD操作
    这篇文章将为大家详细讲解有关Django中有哪些CRUD操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、概念crud是指增删改查,即增加(Create)、读取(Read)、更新(Upd...
    99+
    2023-06-14
  • 分析Mybatis-plus(MP)中CRUD操作
    这篇文章主要介绍“分析Mybatis-plus(MP)中CRUD操作”,在日常操作中,相信很多人在分析Mybatis-plus(MP)中CRUD操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析Mybat...
    99+
    2023-06-25
  • MongoDB操作
    #=========2、mongo===================================#备份数据库mongodump -h 127.0.0.1 -d eb_mongo -o /root/x...
    99+
    2022-10-18
  • Mybatis-Plus 通用CRUD的详细操作
    目录1、插入操作 1.1 方法定义1.2 测试用例1.3 测试1.4 @TableField2、更新操作2.1 根据id更新2.2 根据条件更新3、删除操作3.1 dele...
    99+
    2022-11-12
  • PHP7操作MongoDB
    目录插入数据查询数据更新数据删除数据 PHP7里面使用如下库,操作比较复杂 PHP7连接MongoDB语法如下: //参数规则: mongodb://账号:密码@IP:端口/数据库 $manager = new MongoDBD...
    99+
    2017-02-17
    PHP7操作MongoDB
  • C# 操作MongoDB
    1 安装MongoDB.Driver2 建立数据库连接 #mongodb://127.0.0.1:27017 MongoClient client = new MongoClient(“连接字符串”); ...
    99+
    2022-10-18
  • Python操作Mongodb
    一 导入 pymongo from pymongo import MongoClient 二 连接服务器 端口号 27017 连接MongoDB连接MongoDB我们需要使用PyMongo库里面的MongoClient,一般来说传入Mong...
    99+
    2023-01-31
    操作 Python Mongodb
  • [MongoDB]mongodb的命令行操作
    ./mongo1.查看所有数据库show dbs2.切换数据库use 数据库名3.查询所有集合show collections4.查询所有文档db.文档名.find()db.文档名.find().pretty() //格式化显示5...
    99+
    2020-10-06
    [MongoDB]mongodb的命令行操作
  • MySQL系列(二)之CRUD(增删改查)操作
    文章目录 一. 什么是CRUD二. Create创建三. Retrieve(检索)四. Update(更新)五. Delete(删除) 一. 什么是CRUD CRUD 是计算机编程中常用的...
    99+
    2023-10-02
    mysql 数据库
  • EF Core的CRUD(增删改查)基本操作
    一、增加(C) 单笔增加 //添加 static void Add() { using (var db = n...
    99+
    2022-11-13
  • Go语言学习之操作MYSQL实现CRUD
    目录1.介绍2.下载安装驱动2.1 安装驱动3.匿名导入4.连接数据库4.1 连接方法4.2 sql.DB作用4.3 sql.DB设计目标5.写操作(增、删、改)5.1 执行步骤5.2 代码示例6. 读操作(查询)6.1...
    99+
    2023-02-14
    Go语言操作MYSQL实现CRUD Go语言实现CRUD Go语言MYSQLCRUD
  • jQuery如何操作radio、checkbox、select
    这篇文章主要为大家展示了“jQuery如何操作radio、checkbox、select”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何操作rad...
    99+
    2022-10-19
  • jquery操作select常见方法
    1. 获取select元素的值:- 使用`val()`方法获取select元素的当前选中值:```javascriptvar sel...
    99+
    2023-08-08
    jquery
  • [MongoDB] 基本操作
    ...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作