Mongo DB

  • NoSql简介
  • MongoDB简介
  • 在Windows平台下安装Mongo
  • Mongo DB官方文档

MongoDB基本命令

  • MongoDB的默认安装路径为 C:\Program Files\MongoDB
  • 创建默认的数据库存放路径c:\data\db ,使用命令行把该路径关联到mongo上 C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe --dbpath c:\data\db,执行成功后数据库服务开启并开始监听

Mongo Shell

  • 运行 C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe 文件可以打开MongoDB Shell,它是一个自带的交互式的JavaScript shell,用来对MongoDB进行操作和管理的交互式环境
  • help 命令可以显示可使用的命令行

DB相关的操作

use tutorial

使用该命令会尝试连接名字为tutorial的数据库,如果不存在则创建。使用db.help()命令可以查看命令行帮助

show dbs

显示数据库的相关信息.

如果数据库相关的名字里包含了空格等字符,也可以用下面的命令

db["dbname"].find()
db.getCollection("dbname").find()

插入数据

通过下面的格式来添加数据:

db.restaurants.insert({"address" : {"street" : "2 Avenue","zipcode" : "10075","building" : "1480","coord" : [ -73.9557413, 40.7720266 ],},"borough" : "Manhattan","cuisine" : "Italian","grades" : [{"date" : ISODate("2014-10-01T00:00:00Z"),"grade" : "A","score" : 11},{"date" : ISODate("2014-01-16T00:00:00Z"),"grade" : "B","score" : 17}],"name" : "Vella","restaurant_id" : "41704620"}
)

查找数据

如果想要查找所有的数据,则:

db.collectionname.find()

指定条件:

指定field条件进行筛选,使用如下格式:

{ <field1>: <value1>, <field2>: <value2>, ... }

具体的例子:

db.restaurants.find( { "borough": "Manhattan" } )

大于,小于条件的筛选

db.restaurants.find( { "grades.score": { $gt: 30 } } )
db.restaurants.find( { "grades.score": { $lt: 10 } } )

AND和OR

db.restaurants.find( { "cuisine": "Italian", "address.zipcode": "10075" } )
db.restaurants.find( { $or: [ { "cuisine": "Italian" }, { "address.zipcode": "10075" } ] } )

排序

db.restaurants.find().sort( { "borough": 1, "address.zipcode": 1 } )

更新数据

下面的操作更新name为Juni的记录,用set操作来更新cuisine字段。用set操作来更新cuisine字段。用currentDate 操作符来更新lastModified字段:

db.restaurants.update(
{ "name" : "Juni" },
{$set: { "cuisine": "American (New)" },$currentDate: { "lastModified": true }
}
)

更新内嵌的数据:

db.restaurants.update({ "restaurant_id" : "41156888" },{ $set: { "address.street": "East 31st Street" } }
)

更新多条数据: 默认情况下update方法只更新一条数据。想要更新多条数据,使用multi option。

db.restaurants.update({ "address.zipcode": "10016", cuisine: "Other" },{$set: { cuisine: "Category To Be Determined" },$currentDate: { "lastModified": true }},{ multi: true}
)

替换某条记录 根据某个_id字段的信息,用新的记录替换就得

db.restaurants.update({ "restaurant_id" : "41704620" },{"name" : "Vella 2","address" : {"coord" : [ -73.9557413, 40.7720266 ],"building" : "1480","street" : "2 Avenue","zipcode" : "10075"}}
)

删除某条记录

删除符合某个条件的所有记录:

db.restaurants.remove( { "borough": "Manhattan" } )

只删除符合某个条件的一条记录,使用justOne选项:

db.restaurants.remove( { "borough": "Queens" }, { justOne: true } )

删除所有的记录:

db.restaurants.remove( { } )

删除一个表:

db.restaurants.drop()

聚合运算

聚合并累加

用group来通过某个关键字进行分组,在group来通过某个关键字进行分组,在group中,指定需要分组的关键字为_id。group通过fieldpath访问字段,字段名字需要以group通过fieldpath访问字段,字段名字需要以为前缀。$sum表示累加器,下面的语句表示计算字段为borough的各种情况的个数。

db.restaurants.aggregate([{ $group: { "_id": "$borough", "count": { $sum: 1 } } }]
);

输出结果为:

{ "_id" : "Staten Island", "count" : 969 }
{ "_id" : "Brooklyn", "count" : 6086 }
{ "_id" : "Manhattan", "count" : 10259 }
{ "_id" : "Queens", "count" : 5656 }
{ "_id" : "Bronx", "count" : 2338 }
{ "_id" : "Missing", "count" : 51 }

聚合并过滤

使用 $match 来过滤记录

db.restaurants.aggregate([{ $match: { "borough": "Queens", "cuisine": "Brazilian" } },{ $group: { "_id": "$address.zipcode" , "count": { $sum: 1 } } }]
);

【转】Mongodb 学习笔记相关推荐

  1. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

  2. MongoDB学习笔记【2】-- 试用

    大部分内容根据MongoDB官方手册整理:http://docs.mongodb.org/manual/contents/ 查看数据库 [root@slayer ~]# mongo MongoDB s ...

  3. MongoDB学习笔记(四)使用Java进行实时监控与数据收集(空间使用量、连接数)

    目录: MongoDB学习笔记(一)环境搭建与常用操作 MongoDB学习笔记(二)使用Java操作MongoDB MongoDB学习笔记(三)使用Spring Data操作MongoDB Mongo ...

  4. MongoDB学习笔记(一) MongoDB介绍及安装

    系列目录 MongoDB学习笔记(一) MongoDB介绍及安装     MongoDB学习笔记(二) 通过samus驱动实现基本数据操作     MongoDB学习笔记(三) 在MVC模式下通过Jq ...

  5. PHP操作MongoDB学习笔记

    PHP操作MongoDB技術總結 <?php /** * PHP操作MongoDB学习笔记 */ //************************* //**   连接MongoDB数据库  ...

  6. MongoDB学习笔记(四)--索引 性能优化

    索引                                                                                             基础索引 ...

  7. MongoDB学习笔记一:MongoDB的下载和安装

    MongoDB学习笔记一:MongoDB的下载和安装 趁着这几天比較空暇,准备学习一下MongoDB数据库.今天就简单的学习了一些MongoDB的下载和安装.并创建了存储MongoDB的数据仓库. 将 ...

  8. MongoDB 学习笔记八 复制、分片、备份与恢复、监控

    MongoDB 学习笔记八 复制.分片.备份与恢复.监控 MongoDB复制(副本集) 什么是复制? MongoDB 复制原理 MongoDB 副本集设置 副本集添加成员 MongoDB 分片 分片 ...

  9. MongoDB学习笔记~对集合属性的操作

    $unset清除元素 请注意在单个数组元素上使用$unset的结果可能与你设想的不一样.其结果只是将元素的值设置为null,而非删除整个元素.要想彻底删除某个数组元素,可以用$pull 和$pop操作 ...

  10. 非关系型数据库MongoDB学习笔记

    MongoDB学习笔记   --周灿 创建数据库 use "databasename" 查看数据库 show dbs 给指定数据库添加集合和插入记录 db.集合名.insert({ ...

最新文章

  1. Isight 命令行运行任务
  2. html用vue传递数据,Vue组件及数据传递详解
  3. .NET 3.5 中WCF客户端代理性能改进以及最佳实践
  4. YBTOJ:斐波拉契(矩阵快速幂)
  5. Reporting Services 的伸缩性和性能表现规划(转载)
  6. 通信系统仿真中的几个能量归一化问题
  7. 宜昌市计算机一级考试真题,宜昌市人事局关于在大中专院校学生中开展计算机应用等级考试的通知...
  8. 420.强密码检测器
  9. 第三章 软件项目范围管理
  10. LeetCode刷题第5周小结
  11. 【经验分享】MAC系统自带截屏、录屏小工具
  12. 心理测试html5,50个最准心理测试题 非常准的心理测试题
  13. SharePoint 2010 电子书下载网站推荐
  14. 《速通深度学习数学基础》
  15. 联想x3650服务器安装硬盘,IBM x3650 M2服务器系统安装攻略(组图)
  16. 钛磨产品行业调研报告 - 市场现状分析与发展前景预测
  17. 恩智浦NXP LPC54110 开发板采用LQFP64封装的LPC54114MCU
  18. QPS和TPS是什么?
  19. 上海泛微软件面试经历
  20. 恒大造车背后的资金战、技术战与时间战

热门文章

  1. 底层知识学习记录目录表
  2. 【Makefile由浅入深完全学习记录1】认识make和makefile
  3. hadoop join之map side join
  4. 更改配置:远程访问gitlab的postgresql数据库
  5. python简单笔记
  6. 怎样的中奖算法能让人信服
  7. IOS高级编程之二:IOS的数据存储与IO
  8. phpMyAdmin导入大的sql文件
  9. monotouch在ipad中的实例应用--显示图像和文字
  10. 关于SOAP的几篇文章