MongoDB 基本使用
数据库基本操作
|
1
|
./bin/mongo 127.0.0.1:12345 |
|
1
2
3
|
> show dbsadmin (empty)local 0.078G |
|
1
2
|
> use jeromeswitched to db jerome |
|
1
2
|
> db.dropDatabase(){ "dropped" : "jerome", "ok" : 1 } |
|
1
2
3
4
5
6
7
8
9
10
|
> > show tablesjerome_collectionjerome_coolectionsystem.indexes> db.jerome_collection.drop()true> show tables #删除了当前表了jerome_coolectionsystem.indexes> |
写入
|
1
2
|
> db.jerome_collection.insert({x:1}) #集合数据的写入,格式为JSONWriteResult({ "nInserted" : 1 }) |
查询
|
1
2
3
4
5
6
7
8
9
10
11
|
> show dbsadmin (empty)jerome 0.078GBlocal 0.078GB> show collectionsjerome_collectionsystem.indexes> db.jerome_collection.find(){ "_id" : ObjectId("556fd29a4e8b96c5ebc42e63"), "x" : 1 }> db.jerome_collection.find({x:1}) #能够指定參数{ "_id" : ObjectId("556fd29a4e8b96c5ebc42e63"), "x" : 1 } #_id是全局字段,在数据库中不会反复 |
|
1
2
3
4
5
6
7
8
|
> for(i=3;i<100;i++)db.jerome_collection.insert({x:i}) #能够使用js语法WriteResult({ "nInserted" : 1 })> db.jerome_collection.find().count() #查找总条数99> db.jerome_collection.find().skip(3).limit(2).sort({x:1}) #跳过前三条。取两条,使用x排序{ "_id" : ObjectId("556ff5e8d7e60a53de941a74"), "x" : 4 }{ "_id" : ObjectId("556ff5e8d7e60a53de941a75"), "x" : 5 }> |
更新
|
1
2
3
4
5
6
7
8
|
> db.jerome_collection.find({x:1}){ "_id" : ObjectId("556fd29a4e8b96c5ebc42e63"), "x" : 1 }> db.jerome_collection.update({x:1},{x:999}) #两个參数,一个查找的,一个更新的数据。WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.jerome_collection.find({x:1}) #已经找不到了> db.jerome_collection.find({x:999}) { "_id" : ObjectId("556fd29a4e8b96c5ebc42e63"), "x" : 999 }> |
|
1
2
3
4
5
6
7
|
> db.jerome_collection.insert({x:100,y:100,z:100})WriteResult({ "nInserted" : 1 })> db.jerome_collection.update({z:100},{$set:{y:99}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.jerome_collection.find({z:100}){ "_id" : ObjectId("556ff84a1c99195ded71252e"), "x" : 100, "y" : 99, "z" : 100 }> |
|
1
2
3
4
5
6
7
8
9
10
|
> db.jerome_collection.find({y:100})> db.jerome_collection.update({y:100},{y:999},true)WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : ObjectId("556ff9556db7cf8009b5edf8")})> db.jerome_collection.find({y:999}){ "_id" : ObjectId("556ff9556db7cf8009b5edf8"), "y" : 999 } |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
> for(i=0;i<3;i++)db.jerome_collection.insert({c:2}) #插入三条WriteResult({ "nInserted" : 1 })> db.jerome_collection.find({c:2}) { "_id" : ObjectId("556ffa011c99195ded71252f"), "c" : 2 }{ "_id" : ObjectId("556ffa011c99195ded712530"), "c" : 2 }{ "_id" : ObjectId("556ffa011c99195ded712531"), "c" : 2 }> db.jerome_collection.update({c:2},{c:3}) #更新WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.jerome_collection.find({c:2}){ "_id" : ObjectId("556ffa011c99195ded712530"), "c" : 2 }{ "_id" : ObjectId("556ffa011c99195ded712531"), "c" : 2 }> db.jerome_collection.find({c:3}) #发现仅仅更新一条,是为了防止误操作{ "_id" : ObjectId("556ffa011c99195ded71252f"), "c" : 3 }> db.jerome_collection.update({c:2},{$set:{c:3}},false,true) #更新多条WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })> db.jerome_collection.find({c:2})> db.jerome_collection.find({c:3}){ "_id" : ObjectId("556ffa011c99195ded71252f"), "c" : 3 }{ "_id" : ObjectId("556ffa011c99195ded712530"), "c" : 3 }{ "_id" : ObjectId("556ffa011c99195ded712531"), "c" : 3 } |
删除
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
> db.jerome_collection.find({c:3}){ "_id" : ObjectId("556ffa011c99195ded71252f"), "c" : 3 }{ "_id" : ObjectId("556ffa011c99195ded712530"), "c" : 3 }{ "_id" : ObjectId("556ffa011c99195ded712531"), "c" : 3 }> db.jerome_collection.remove() #不可用2015-06-04T00:15:34.444-0700 remove needs a query at src/mongo/shell/collection.js:299> db.jerome_collection.find({c:3}){ "_id" : ObjectId("556ffa011c99195ded71252f"), "c" : 3 }{ "_id" : ObjectId("556ffa011c99195ded712530"), "c" : 3 }{ "_id" : ObjectId("556ffa011c99195ded712531"), "c" : 3 }> db.jerome_collection.remove({c:3}) #删除必需要有參数WriteResult({ "nRemoved" : 3 })> db.jerome_collection.find({c:3}) #删除成功> |
索引
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
> for(i=0;i<100;i++)db.jerome_collection.insert({x:i}) #加入測试数据WriteResult({ "nInserted" : 1 })> db.jerome_collection.getIndexes() #仅仅有一个默认索引[ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "jerome.jerome_collection" }]> |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
> db.jerome_collection.ensureIndex({x:1}) #1代表正向排序,-1代表反向排序{ "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1}> db.jerome_collection.getIndexes()[ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "jerome.jerome_collection" }, { "v" : 1, "key" : { "x" : 1 }, "name" : "x_1", "ns" : "jerome.jerome_collection" }]> |
MongoDB 基本使用的更多相关文章
- 【翻译】MongoDB指南/聚合——聚合管道
[原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...
- 【翻译】MongoDB指南/CRUD操作(四)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...
- 【翻译】MongoDB指南/CRUD操作(三)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...
- 【翻译】MongoDB指南/CRUD操作(二)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...
- 【翻译】MongoDB指南/CRUD操作(一)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...
- CRL快速开发框架系列教程十二(MongoDB支持)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- MongoDB系列(二):C#应用
前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...
- MongoDB系列(一):简介及安装
什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为应用提供可扩展的高 ...
- [原]分享一下我和MongoDB与Redis那些事
缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...
- 用MongoDB分析合肥餐饮业
看了<从数据角度解析福州美食>后难免心痒,动了要分析合肥餐饮业的念头,因此特地写了Node.js爬虫爬取了合肥的大众点评数据.分析数据库我并没有采用MySQL而是用的MongoDB,是因为 ...
随机推荐
- TP5 分页类,自定义样式
结合X-admin 后台框架 在做项目,为了保持分页风格的一致,所以需要自定义 一个分页类. 一.在项目的 extend 目录,创建 cus 目录 二.创建 Page 分页类,代码如下 <?ph ...
- (WC2018模拟十二)【FJOI2016集训Day7T3】Xor-Mul棋盘
是不是应该第100篇博文纪念一下? 题解: 本质简单题...但是我没仔细看这题... 观察它的两个式子,都是xor完再乘以某个数,意味着d数组的每个二进制位对答案的贡献都是独立的,可以每一位分开处理. ...
- PHP XML To Array将XML转换为数组
// Xml 转 数组, 包括根键,忽略空元素和属性,尚有重大错误 function xml_to_array( $xml ) { $reg = "/<(\\w+)[^>]*?& ...
- 利用MFC创建窗口、消息映射、window中的字节
利用MFC创建窗口: 1.mfc的头文件:afxwin.h 2.自定义类,继承于CWinApp,应用程序类(app应用程序对象,有且仅有一个) 3.程序入口:Initinstance 4.在程序入口中 ...
- POJ-2240 Arbitrage BellmanFord查可循环圈
题目链接:https://cn.vjudge.net/problem/POJ-2240 题意 套利(Arbitrage)就是通过不断兑换外币,使得自己钱变多的行为 给出一些汇率 问能不能套利 思路 马 ...
- redhat7.5 升级OpenSSH_7.8p1
1:拷贝编译好rpm安装包 [root@liwm ~]# scp -r root@192.168.31.130:/home/openssh7.8 /home/ root@192.168.31.130' ...
- H3C S5130交换机堆叠操作
配置过程中注意事项: 1.最好提前定义好IRF的主从设备,可通过IRF优先级进行定义,越大越优 2.一定要在使能IRF之前就保存配置(因为使能过程中,会出现设备重启的情况,如果设备重启后配置丢失,会导 ...
- Docker_入门?只要这篇就够了!(纯干货适合0基础小白)
与sgy一起开启你的Docker之路 关键词: Docker; mac; Docker中使用gdb无法进入断点,无法调试; 更新1: 看起来之前那一版博文中参考资料部分引用的外站链接太多,被系统自动屏 ...
- openssh 升级到7.5p1
1. 参照: http://www.cnblogs.com/xiegj/p/5669800.html http://blog.csdn.net/u011080082/article/details/5 ...
- 实现图像剪裁 jquery.Jcrop
配合 jquery.Jcrop 实现上传图片进行剪裁保存功能 <script src="js/jquery.min.js"></script> ...