mongodb查询

1.查询单条记录

> db.choice.findOne()

2.查询时指定查询条件

> db.choice.find({"_id":"005a38d5"})

默认{}查询全部

指定返回列

> db.choice.find({"_id":"005a38d5"},{"title":1,"results":1})
{ "_id" : "005a38d5", "title" : "While some maintain that the recent proliferati
on of uncredited web sources will have a(n) (i)_____ effect on scholarship, othe
rs argue that the effects will be far more (ii)_____, claiming that academics ar
e sensible enough not to (iii)_____ unattributed sources.", "results" : [  [  "1
" ],  [  "1" ],  [  "0" ] ] }
>

指定返回title和results属性

默认会返回_id,也可以设置不返回

> db.choice.find({"_id":"005a38d5"},{"title":1,"results":1,"_id":0})
{ "title" : "While some maintain that the recent proliferation of uncredited web
sources will have a(n) (i)_____ effect on scholarship, others argue that the ef
fects will be far more (ii)_____, claiming that academics are sensible enough no
t to (iii)_____ unattributed sources.", "results" : [  [  "1" ],  [  "1" ],  [
"0" ] ] }
>

3.条件查询

条件操作符

"$lt"===============>"<"

"$lte"==============>"<="

"$gt"===============>">"

"$gte"==============>">="

"$ne"==============>"!="

查询出blankCount大于等于1,小于等于2的一条记录

> db.choice.findOne({"blankCount":{$lte:2,$gte:1}},{"blankCount":1})
{ "_id" : "006526ff", "blankCount" : 2 }
>

4.$or或

> db.choice.findOne({$or:[{"blankCount":2},{"type":3}]})

查询出blankCount为2或者type为3的一条记录

5.$not

> db.choice.findOne({"type":{"$not":{$gt:3}}})

查询出type不大于3的一条记录

6.查询空null的记录

> db.questionSet.findOne({source:null})

设置字段为null后,字段为null或者不包含该字段的记录也会匹配。

如果不查询不存在的字段,则使用$exists:true

> db.questionSet.findOne({source:null,$exists:true})

7.查询时使用正则表达式

> db.choice.findOne({title:/^While/})

查询title以While开头的一条记录

8.数组查询

> db.questionSet.findOne({"questionIds":'6188e9fc'},{"questionIds":1})
{
        "_id" : "030eeeba",
        "questionIds" : [
                "6188e9fc",
                "a380e38c",
                "addff709",
                "b6bc4eff",
                "5095b99f",
                "c8352e48",
                "ecca3626",
                "c31125f7"
        ]
}

查询数组questionIds中包含6188e9fc的记录

如果查询多个元素在数组中用$all,其中不分顺序。

> db.questionSet.findOne({"questionIds":{$all:['6188e9fc','a380e38c']}},{"questi
onIds":1})
{
        "_id" : "030eeeba",
        "questionIds" : [
                "6188e9fc",
                "a380e38c",
                "addff709",
                "b6bc4eff",
                "5095b99f",
                "c8352e48",
                "ecca3626",
                "c31125f7"
        ]
}

精确匹配:

> db.questionSet.findOne({"questionIds":['6188e9fc','a380e38c']},{"questionIds":
1})
null

9.$slice操作符

取出数组中的前3条记录

> db.questionSet.findOne({},{"questionIds":{$slice:3}})
{
        "_id" : "030eeeba",
        "catQuestionSet" : 2,
        "orderNo" : 2,
        "source" : 1,
        "type" : 2,
        "level" : 3,
        "questionCount" : 10,
        "questionIds" : [
                "6188e9fc",
                "a380e38c",
                "addff709"
        ]
}

取出数组中的后3条记录

> db.questionSet.findOne({},{"questionIds":{$slice:-3}})
{
        "_id" : "030eeeba",
        "catQuestionSet" : 2,
        "orderNo" : 2,
        "source" : 1,
        "type" : 2,
        "level" : 3,
        "questionCount" : 10,
        "questionIds" : [
                "c8352e48",
                "ecca3626",
                "c31125f7"
        ]
}

10.内嵌文档查询

查询文档有两种方式,一种是完全匹查询,另一种是针对键值对查询。内嵌文档的完全匹配查询和数组的完全匹配查询一样,内嵌文档内键值对的数量,顺序都必须一致才会匹配。

完全匹配:

> db.choice.findOne({"explain":{"ccurlList":"3DC334A16B187EBF9C33DC5901307461","
textExplain":"Answers"}})

键值对匹配(常用):

> db.choice.findOne({"explain.ccurlList":"3DC334A16B187EBF9C33DC5901307461","exp
lain.textExplain":"Answers"})

数组中单条文档进行匹配时,使用$elemMatch

> db.choice.findOne({"explain":{$elemMatch:{"ccurlList":"3DC334A16B187EBF9C33DC5
901307461","textExplain":"Answers"}}})

11.$where查询

查询出blankCount和type相等的一条记录

> db.choice.findOne({$where:"this.blankCount==this.type"})
{
        "_id" : "005a38d5",
        "blankCount" : 3,
        "explain" : {
                "ccurlList" : [ ]
        },
        "type" : 3,
        "questionSetId" : "affccc14"
}
时间: 2024-10-10 09:16:34

mongodb查询的相关文章

MongoDB查询语句

看了些资料,对应只需要知道怎么查询和使用mongodb的我来说,这些足够啦. 左边是mongodb查询语句,右边是sql语句.对照着用,挺方便. db.users.find() select * from users db.users.find({"age" : 27}) select * from users where age = 27 db.users.find({"username" : "joe", "age" : 

MongoDB查询集合中的文档

MongoDB查询集合中的文档 参考资料:http://blog.csdn.net/qq_36040184/article/details/54355085 测试: 集合中插入数据 > db.chenji.insert({"name":"张三","年纪":"三年级","年龄":"14"}) WriteResult({ "nInserted" : 1 }) >

MongoDB 查询分析

MongoDB 查询分析可以确保我们建议的索引是否有效,是查询语句性能分析的重要工具. MongoDB 查询分析常用函数有:explain() 和 hint(). 使用 explain() explain 操作提供了查询信息,使用索引及查询统计等.有利于我们对索引的优化. 接下来我们在 users 集合中创建 gender 和 user_name 的索引: >db.users.ensureIndex({gender:1,user_name:1}) </p> <p>现在在查询语

mongodb查询文档

说到查询,我们一般就想起了关系型数据库的查询了,比如:order by(排序).limit(分页).范围查询(大于某个值,小于某个值..,in查询,on查询,like查询等待很多),同样mongodb同样也支持这些操作,只是语法不同,比如排序:mongodb里面使用了skip(field:1/-1)方法,下面就来一一介绍一下: 一.mongodb查询文档 1.查询文档之find() : 不加条件是查询集合全部的数据 语法:db.collectionName.find({条件},{field:tr

MongoDB 查询文档

语法 MongoDB 查询数据的语法格式如下: >db.COLLECTION_NAME.find() find() 方法以非结构化的方式来显示所有文档. 如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下: >db.col.find().pretty() pretty() 方法以格式化的方式来显示所有文档. 实例 以下实例我们查询了集合 col 中的数据: > db.col.find().pretty() { "_id" : Object

【Mongodb教程 第七课 】MongoDB 查询文档

find() 方法 要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法. 语法 基本的find()方法语法如下 >db.COLLECTION_NAME.find() find() 方法将在非结构化的方式显示所有的文件. pretty() 方法 结果显示在一个格式化的方式,可以使用 pretty() 方法. 语法: >db.mycol.find().pretty() 例子 >db.mycol.find().pretty() { "_id":

[转]mongodb 查询条件:关系运算符&quot;$lt&quot;, &quot;$lte&quot;, &quot;$gt&quot;, &quot;$gte&quot;, &quot;$ne&quot; 逻辑运算符&quot;$and“, &quot;$or“, &quot;$nor“

mongodb 查询条件 这节来说说mongodb条件操作符,"$lt", "$lte", "$gt", "$gte", "$ne"就是全部的比较操作符,对应于"<", "<=", ">", ">=","!=". 原子操作符:"$and“, "$or“, "

MongoDB查询分析

MongoDB 查询分析可以确保我们建立的索引是否有效,是查询语句性能分析的重要工具.MongoDB 查询分析常用函数有:explain() 和 hint(). 1. explain(): 提供查询信息,使用索引及查询统计,有利于我们对索引的优化. 使用示例: db.users.find({gender:"M"},{user_name:1,_id:0}).explain() 2. hint(): 强迫MongoDB使用一个指定的索引(为了提高查询性能) 使用示例: db.users.f

Mongodb查询的用法,备注防止忘记

最近在用这个东西,为防止忘记,记下来. 集合简单查询方法 mongodb语法:db.collection.find()  //collection就是集合的名称,这个可以自己进行创建. 对比sql语句:select * from collection; 查询集合中所有的文档,即关系型数据库中的查询表中的所有数据. 返回制定的键值 mongodb语法:db.collection.find({},{"userid":1}) 对比sql语句:select userid from collec

MongoDB查询操作限制返回字段的方法

这篇文章主要介绍了MongoDB查询操作限制返回字段的方法,需要的朋友可以参考下 映射(projection )声明用来限制所有查询匹配文档的返回字段.projection以文档的形式列举结果集中要包含或者排除的字段.可以指定要包含的字段(例如: {field:1})或者指定要排除的字段(例如:{field:0}).默认_id是包含在结果集合中的,要从结果集中排除_id字段,需要在 projection中指定排除_id字段({_id:0}).除了_id字段,不能在一个projection中联合使