Mongodb查询语法

##Mongodb查询语法
一.查询文档
本段提供了使用 mongo shell中 db.collection.find() 方法查询的案例。案例中使用的 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" }]);

1.1 检索集合中的所有文档
db.inventory.find( {} )

1.2 等值查询

在查询过滤文档中使用 **<字段>:<值>** 表达式实现等值查询:
{ <field1>: <value1>, ... }

返回 inventory 集合中 status 等于 " D "** 的所有文档:
db.inventory.find( { status: "D" } )

1.3 查询条件中使用的操作符

查询过滤文档中可以使用查询操作符来指定多个条件,格式如下:
{ <field1>: { <operator1>: <value1> }, ... }

集合中 status 等于 " A " 或 " D " 的所有文档 。
db.inventory.find( { status: { $in: [ "A", "D" ] } } )

1.4 AND 条件

返回 inventory 集合中 status 等于 " A "  并且 qty小于($lt)30 的所有文档:
db.inventory.find( { status: "A", qty: { $lt: 30 } } )

关于 MongoDB 的比较操作符可以参考比较操作符。

1.5 OR 条件

下面的案例返回 inventory 集合中 status 等于 "A" 或者 qty小于 ($lt)30 的所有文档。
db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )

1.6 同时使用 AND 和 OR 条件

下面的案例返回 inventory 集合中 status 等于 "A" 并且 qty 小于 ($lt) 30 或者 item 是以 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%")


二.查询嵌套文档

本段提供了使用 mongo shell 中 db.collection.find() 方法查询嵌套文档的操作案例。案例中使用的 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&

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值