作为程序员大佬,Mongodb排序你真的了解多少

首先我们先来了解一下什么是Mongodb,有好多小伙伴不知道它是什么意思,我也和你们一样,不太了解,所以今天专门给大家整理了一篇非常详细的讲解,带你入门到入土。

什么是MongoDB ?

  MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

  在高负载的情况下,添加更多的节点,可以保证服务器性能。

  MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

  MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

MongoDB 应用案例

  下面列举一些公司MongoDB的实际应用:

  Craiglist上使用MongoDB的存档数十亿条记录。

  FourSquare,基于位置的社交网站,在Amazon EC2的服务器上使用MongoDB分享数据。

  Shutterfly,以互联网为基础的社会和个人出版服务,使用MongoDB的各种持久性数据存储的要求。

  bit.ly, 一个基于Web的网址缩短服务,使用MongoDB的存储自己的数据。

  spike.com,一个MTV网络的联营公司, spike.com使用MongoDB的。

  Intuit公司,一个为小企业和个人的软件和服务提供商,为小型企业使用MongoDB的跟踪用户的数据。

  sourceforge.net,资源网站查找,创建和发布开源软件免费,使用MongoDB的后端存储。

  etsy.com ,一个购买和出售手工制作物品网站,使用MongoDB。

  纽约时报,领先的在线新闻门户网站之一,使用MongoDB。

  CERN,著名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用MongoDB。

MongoDB sort() 方法

在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。

语法

sort()方法基本语法如下所示:

>db.COLLECTION_NAME.find().sort({KEY:1})

实例

col 集合中的数据如下:

{ "_id" : ObjectId("56066542ade2f21f36b0313a"), "title" : "PHP 教程", "description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。", "by" : "伟美", "url" : "http://www.runoob.com", "tags" : [ "php" ], "likes" : 200 }

{ "_id" : ObjectId("56066549ade2f21f36b0313b"), "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "伟美", "url" : "http://www.runoob.com", "tags" : [ "java" ], "likes" : 150 }

{ "_id" : ObjectId("5606654fade2f21f36b0313c"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "伟美", "url" : "http://www.runoob.com", "tags" : [ "mongodb" ], "likes" : 100 }

以下实例演示了 col 集合中的数据按字段 likes 的降序排列:

>db.col.find({},{"title":1,_id:0}).sort({"likes":-1})

{ "title" : "PHP 教程" }

{ "title" : "Java 教程" }

{ "title" : "MongoDB 教程" }

>

MongoDB 操作

1、连接远程服务器的MongoDB数据库

mongo 123.206.190.194:27017/account_service -u root -p mYmongo$%123 --authenticationDatabase=admin

  • ip:port/db_name:指明远程服务器的ip地址、端口号、数据库名称

  • -u:指明数据库的用户名

  • -p:指明数据库的密码

2、数据库(table)及集合(collection)说明

MongoDB数据库名称为account_service

MongoDB数据库集合名称为company

company集合的结构如下:

{

"_id" : ObjectId,

"source" : String,

"name" : String,

"mobile" : String,

"password" : String,

"license_no" : String,

"active" : String,

"xd_active" : String,

"frw_active" : String,

"allow_borrow" : String,

"merchant_id" : Array,

"last_login_ip" : String,

"last_login_at" : String,

"updated_at" : Date,

"created_at" : Date

"ec_customer_id" : String

}

3、数据导出

mongoexport -h 123.206.190.194 -u root -p mYmongo$%123 --authenticationDatabase=admin --authenticationMechanism=SCRAM-SHA-1 --port 27017 -d account_service -c company --type=csv -f _id,name,mobile,show_count,last_login_at,active -q "{'source':'3','last_login_at':{$gt:'2018-07-11 17:08:05'}}" -o ./company.csv

  • -h:指明数据库属主机的IP

  • -u:指明数据库的用户名

  • -p:指明数据库的密码

  • --port:指明端口号

  • -d:指明数据库的名字

  • -c:指明collection的名字

  • --type:指明要导入的文件格式

  • -f:指明要导出那些列

  • -q:指明导出数据的过滤条件

  • -o:指明要导出的文件名

  • --authenticationDatabase:指明保存用户凭证的数据库

  • --authenticationMechanism:指明身份验证机制

中文乱码解决方案:使用记事本打开company.csv,执行“另存为”操作,选择“编码”为“UTF-8”。

查询

1、MongoDB与MySQL简单查询对比

2、过滤导出的数据-示例

基础命令

mongoexport -h 123.206.190.194 -u root -p mYmongo$%123 --authenticationDatabase=admin --authenticationMechanism=SCRAM-SHA-1 --port 27017 -d account_service -c company --type=csv -f _id,name,mobile,show_count,last_login_at,active -o ./company.csv

以下命令,都是基于该命令的,即,将下列命令添加基础命令,便组成了完成的条件过滤导出命令。

导出 source 等于 3 的所有数据

-q "{'source':'3'}"

导出 last_login_at 大于 2018-07-10 17:08:05 的所有数据

- q "{'last_login_at':{$lt:'2018-07-10 17:08:05'}}"

导出 last_login_at 小于 2018-07-10 17:08:05 的所有数据

- q "{'last_login_at':{$gt:'2018-07-10 17:08:05'}}"

导出 last_login_at 小于或等于 2018-07-10 17:08:05 的所有数据

- q "{'last_login_at':{$lte:'2018-07-10 17:08:05'}}"

导出 last_login_at 大于或等于 2018-07-10 17:08:05 的所有数据

- q "{'last_login_at':{$gte:'2018-07-10 17:08:05'}}"

导出 source 不等于 3 的所有数据

- q "{'source':{$ne:'3'}}"

导出 source 等于 5 且 last_login_at 大于 2018-07-10 00:00:00 的所有数据

- q "{'source':'5','last_login_at':{$gt:'2018-07-10 00:00:00'}}"

导出 source 等于 3 或 source 等于 5 的所有数据

-q "{$or:[{'source':'3'},{'source':'5'}]}"

导出 source 等于 5 并且 last_login_at 大于 2018-07-10 00:00:00 或 last_login_at 小于 2018-06-20 00:00:00 的所有数据

- q "{'source':'5',$or:[{'last_login_at':{$gt:'2018-07-10 00:00:00'}},{'last_login_at':{$lt:'2018-06-20

猜你喜欢

转载自blog.csdn.net/sgw827/article/details/114313847