亚洲必赢app在哪下载mongodb-$type、limit、skip、sort方法、索引、聚合

By admin in 亚洲必赢app在哪下载 on 2019年4月20日

一、$type操作符

  $type操作符是根据BSON类型来搜寻集结中非常的数据类型,并赶回结果。

  MongoDB 中得以行使的花色如下表所示:

类型 数字 备注
Double 1  
String 2  
Object 3  
Array 4  
Binary data 5  
Undefined 6 已废弃。
Object id 7  
Boolean 8  
Date 9  
Null 10  
Regular Expression 11  
JavaScript 13  
Symbol 14  
JavaScript (with scope) 15  
32-bit integer 16  
Timestamp 17  
64-bit integer 18  
Min key 255 Query with -1.
Max key 127  

  例:db.mycol.find({‘name’:{$type:2}})获取 “mycol” 集合中 name为
String 的数据。

 

二、limit、skip、sort方法

  1、limit()措施:读取钦赐数量的数量记录,db.COLLECTION_NAME.find().limit(NUM)

  2、skip()方法:跳过钦命数量的数额,db.COLLECTION_NAME.find().skip(NUM)

  3、sort()艺术:对数码实行排序,sort()方法能够通过参数钦赐排序的字段,并使用
壹 和 -一 来内定排序的点子,当中 一 为升序排列,而-一是用以降序排列。

  语法:db.COLLECTION_NAME.find().sort({KEY:一}),其中KEY是依附排序的字段,例:db.mycol.find().sort({‘name’:1})

 

三、mongodb索引

  索引是出格的数据结构,索引存款和储蓄在2个轻易遍历读取的数据会集中,索引是对数据库表中一列或多列的值举行排序的壹种结构。

  mongodb使用ensureIndex()方法创制索引,其语法:db.COLLECTION_NAME.ensureIndex({KEY:1}),在那之中KEY为要开创索引的字段,一为钦命按升序创造索引,-壹降序。

  例:db.mycol.ensureIndex({‘name’:1,’age’:-1})

  ensureIndex() 接收可选参数,可选参数列表如下:

Parameter Type Description
background Boolean 建索引过程会阻塞其它数据库操作,background可指定以后台方式创建索引,即增加 "background" 可选参数。 "background" 默认值为false
unique Boolean 建立的索引是否唯一。指定为true创建唯一索引。默认值为false.
name string 索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生成一个索引名称。
dropDups Boolean 在建立唯一索引时是否删除重复记录,指定 true 创建唯一索引。默认值为 false.
sparse Boolean 对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含对应字段的文档.。默认值为 false.
expireAfterSeconds integer 指定一个以秒为单位的数值,完成 TTL设定,设定集合的生存时间。
v index version 索引的版本号。默认的索引版本取决于mongod创建索引时运行的版本。
weights document 索引权重值,数值在 1 到 99,999 之间,表示该索引相对于其他索引字段的得分权重。
default_language string 对于文本索引,该参数决定了停用词及词干和词器的规则的列表。 默认为英语
language_override string 对于文本索引,该参数指定了包含在文档中的字段名,语言覆盖默认的language,默认值为 language.

  例:后台创立索引,db.mycol.ensureIndex({‘age’:①},{backgroud:true})

 

亚洲必赢app在哪下载,四、mongodb聚合

  MongoDB中聚集(aggregate)首要用以拍卖数量(诸如总结平均值,求和等),并赶回计算后的数量结果。有点类似sql语句中的
count(*)。

  aggregate()方法,语法格式如下:db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

  例:对于组织为:

{
   _id: ObjectId(7df78ad8902e)
   title: 'Neo4j Overview', 
   description: 'Neo4j is no sql database',
   by_user: 'Neo4j',
   url: 'http://www.neo4j.com',
   tags: ['neo4j', 'database', 'NoSQL'],
   likes: 750
}

  mongodb群集来实施:

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])

  以上实例类似sql语句: select by_user, count(\) from mycol group
by
by_user,*通过字段by_user字段对数据开始展览分组,并计算by_user字段同样值的总和。

  以下是一对集聚的表明式:

表达式 描述 实例
$sum 计算总和。 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])
$avg 计算平均值 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}])
$min 获取集合中所有文档对应值得最小值。 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}])
$max 获取集合中所有文档对应值得最大值。 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}])
$push 在结果文档中插入值到一个数组中。 db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}])
$addToSet 在结果文档中插入值到一个数组中,但不创建副本。 db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}])
$first 根据资源文档的排序获取第一个文档数据。 db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])
$last 根据资源文档的排序获取最后一个文档数据 db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])

  聚合框架中常用的多少个操作:

  • $project:修改输入文书档案的布局。可以用来重命名、增添或删除域,也可以用于创制计算结果以及嵌套文书档案。
  • $match:用于过滤数据,只输出符合条件的文书档案。$match使用MongoDB的正规查询操作。
  • $limit:用来界定MongoDB聚合管道重返的文书档案数。
  • $skip:在群集管道中跳过钦定数量的文书档案,并回到余下的文书档案。
  • $unwind:将文档中的某叁个数组类型字段拆分成多条,每条包蕴数组中的3个值。
  • $group:将集纳中的文档分组,可用于总计结果。
  • $sort:将输入文书档案排序后输出。
  • $geoNear:输出接近某1地理地点的平稳文书档案。

  例:

db.article.aggregate(
    { $project : {
        title : 1 ,
        author : 1 ,
    }}
 );

  那样的话结果中就只还有_id,tilte和author多个字段了,默许情形下_id字段是被含有的,尽管不想让_id被含有能够_id:0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 亚洲必赢app官方下载 版权所有