mongodb(3)--文档查询

一、简单查询

-- 查询所有文档
db.COLLECTION_NAME.find()
-- 将查询结果以json形式显示
db.COLLECTION_NAME.find().pretty()

二、按条件查询文档

db.COLLECTION_NAME.find(query,projection)

参数说明:

  • query:可选,
  • projection:可选,查询时返回文档中所有键值,(默认省略)

说明:

  • 按条件分为逻辑操作符和比较操作符
  • 逻辑操作符:与、或等等
  • 比较操作符:大于、小于、大于等于、小于等于、不等于、包含、不包含

语法以及举例说明:

-- 与操作符$and
db.COLLECTION_NAME.find({$and:[{<key1>:<value1>,<key2>:<value2>}]})
-- 或操作符$or
db.COLLECTION_NAME.find({$or:[{<key1>:<value1>},{<key2>:<value2>}]})
-- 等于操作符
db.COLLECTION_NAME.find({<key1>:<value1>})
-- where by = '菜鸟教程'
db.col.find({"by":"菜鸟教程"})
-- 不等于操作符$ne
db.COLLECTION_NAME.find({<key>:$ne:{<value>}})
-- where likes != 50
db.col.find({"likes":{$ne:50}})
-- 大于操作符$gt
db.COLLECTION_NAME.find({<key>:{$gt:<value>}})
-- where likes > 50
db.col.find({"likes":{$gt:50}})
-- 小于操作符$lt
db.COLLECTION_NAME.find({<key>:{$lt:<value>}})
-- where likes < 50
db.col.find({"likes":{$lt:50}})
-- 大于等于操作符$gte
db.COLLECTION_NAME.find({<key>:{$gte:<value>}})
-- where likes >= 50
db.col.find({"likes":{$gte:50}})
-- 小于等于操作符$lte
db.COLLECTION_NAME.find({<key>:{$lte:<value>}})
-- where likes <= 50
db.col.find({"likes":{$lte:50}})
-- 包含操作符$in
-- 注意:in的是一个数组
db.COLLECTION_NAME.find({<key>:{$in:[<values>]}})
-- 不包含操作符$nin
db.COLLECTION_NAME.find({<key>:{$nin:[<values>]}})

AND 与 OR 操作符联合使用

db.comment.find
({
$and:[
{$or:[{userid:"1001"},{userid:"1003"}]},{$or:[{userid:"1001"},{userid:"1003"}]}
]
})

 

三、按特定类型查询文档

1、NULL类型查询

-- NULL类型查询,查询字段值为null的文档
db.COLLECTION_NAME.find({<key>:null})

2、正则表达式查询

-- 查询符合某个规则的文档
db.COLLECTION_NAME.find({<key>:/正则表达式/})
db.COLLECTION_NAME.find({<key>:{$regex:/正则表达式/}})

说明:举例

-- $匹配输入字符串结尾位置
db.comment.find({content:{$regex:/水$/}})
-- ^匹配输入字符串开始位置
db.comment.find({content:{$regex:/^专家/}})
-- 匹配带有 凉开水 的
db.comment.find({content:{$regex:/凉开水/}})
-- 正则表达式自己搜索

3、嵌套文档查询之子文档精确查询

-- 用于在集合中指定子文档,查询符合条件的文档
db.COLLECTION_NAME.find({<key>:{<key1>:<value1>,<key2>:<value2>}})

 4、嵌套文档查询之点查询

-- 用于集合中指定子文档中一个字段,查询包含该字段的文档
db.COLLECTION_NAME.find({<key>.<key1>:<value>})
-- 属性.子属性

 

posted @   洛小依ovo  阅读(80)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
点击右上角即可分享
微信分享提示