关于MongoDB如何查询文档,相信很多没有经验的人都不会做。因此,本文总结了问题产生的原因及解决方法。希望你能通过这篇文章解决这个问题。
查询文件
使用库存集。要插入清单集合的内容,请运行以下命令:
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: '明信片',qty:45,size:{h:10,w:15.25,uom:'cm'},status: ' A ' }
]);00-1010要选择集合中的所有文档,请将空文档作为查询筛选参数传递给查找方法。查询过滤器参数决定选择标准:
Db.inventory.find({})此操作相当于以下SQL语句:
有关方法语法的更多信息,请参见查找()。
指定相等条件。
若要指定相等条件,请使用查询筛选器文档中的表达式field:value:
{field1: value1,}以下示例从库存集合中选择所有状态为的文档“d ”:
此操作对应于以下SQL语句:
从库存中选择*状态=“D”
选择集合中的所有文档
查询过滤文档可以使用查询运算符以下列形式指定条件:
{field1: {operator1: value1},}以下示例从库存集合中检索所有文档,其中状态等于“a”或“d”:
db . inventory . find({ status : { $in :[' a ',' d ']})
使用查询运算符指定条件
虽然您可以在查询中使用$or运算符,但在对同一字段执行相等性检查时,请使用$ in运算符而不是$or运算符。
此操作对应于以下SQL语句:
从“a”、“d”中的fromventorywherestationsin中选择*。有关MongoDB查询运算符的完整列表,请参见查询和投影运算符文档。
00-1010复合查询可以为一组文档中的多个字段指定条件。隐式地,逻辑AND连接将连接复合查询的子句,以便查询选择集中匹配所有条件的文档。
以下示例检索库存集合中状态序列为“A”且数量小于($lt)30的所有文档:
此操作对应于以下SQL语句:
选择* fromventorywherestatus="a "和qty30。参见其他MongoDB的比较操作。
00-1010使用$OR运算符,您可以指定一个复合查询,该查询使用逻辑OR连接来连接每个子句,以便查询选择集中至少符合一个条件的文档。
以下示例检索集合中状态等于“a”或数量小于($lt)30的所有文档:
此操作对应于以下SQL语句:
对于其他MongoDB比较运算符,请选择* fromventorywherestatus="a "或qty30
注意
,请参见比较运算符。
指定AND条件
在以下示例中,对集合执行复合查询,以获取满足以下条件的文档:状态等于“a”且数量小于($lt)30或项目值以p开头的文档:
db . inventory . find({ 0
状态:'A ',
$or:[{qty:{$lt:30}},{item:/^p/}]
})此操作对应于以下SQL语句:
选择* Frominventorywherestatus="a "和(qty 30 oritemlike " p % ")
指定OR条件
MongoDB支持正则表达式$regex查询来执行字符串模式匹配。
看完以上,你知道MongoDB怎么查询文档吗?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道。感谢阅读!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/67451.html