文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何进行MongoDB查询文档

2023-06-02 16:50

关注

如何进行MongoDB查询文档,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

查询文件

使用inventory集合。插入inventory 集合内容,请运行以下命令:

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" }]);

选择集合中的所有文档

要选择集合中的所有文档,请将空文档作为查询过滤器参数传递给find方法。查询过滤器参数确定选择标准:

db.inventory.find( {} )

此操作相当于以下SQL语句:

SELECT * FROM inventory

有关方法语法的详细信息,请参阅 find()。

指定等式条件

要指定相等条件,请<field>:<value> 在查询过滤器文档中使用表达式 :

{ < field1 >: < value1 > , ... }

以下示例从inventory集合中选择status等于的所有文档"D":

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

此操作对应于以下SQL语句:

SELECT * FROM inventory WHERE status = “D”

使用查询运算符指定条件

查询过滤器文档可以使用查询运算符,以指定在以下形式的条件:

{ < field1 >: { < operator1 >: < value1 > }, ... }

以下示例从inventory 集合中检索所有文档,其中status等于"A"或"D":

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

虽然您可以在查询中使用$or运算符,但 在对同一字段执行相等性检查时,请使用$in运算符而不是$or运算符。

该操作对应于以下SQL语句:

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

有关MongoDB查询运算符的完整列表,请参阅Query and Projection Operators文档。

指定AND条件

复合查询可以为集合的文档中的多个字段指定条件。隐式地,逻辑AND连接将连接复合查询的子句,以便查询选择集合中与所有条件匹配的文档。

以下示例检索inventory 集合中statusequals "A" 和 qty小于($lt)30的所有文档:

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

该操作对应于以下SQL语句:

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

见比较运算符其他MongoDB的比较操作。

指定OR条件

使用$or运算符,可以指定将每个子句与逻辑OR连接相连接的复合查询,以便查询选择集合中至少与一个条件匹配的文档。

以下示例检索集合中status等于"A" 或 qty小于($lt)30的所有文档:

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

该操作对应于以下SQL语句:

SELECT * FROM inventory WHERE status = “A” OR qty < 30
注意

有关其他MongoDB比较运算符,请参见比较运算符。

指定AND以及OR条件

在下面的例子中,对集合进行复合查询,取得满足以下条件的文档:status等于"A" 并且 qty小于($lt)30 或item的value以p为开头的文档:

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

该操作对应于以下SQL语句:

SELECT * FROM inventory WHERE status = “A” AND ( qty < 30 OR item LIKE “p%” )
注意

MongoDB支持正则表达式$regex查询以执行字符串模式匹配。

看完上述内容,你们掌握如何进行MongoDB查询文档的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯