MongoDB学习笔记(一)

原创 2014年04月22日 13:35:20

学习笔记:

1.数据逻辑结构:MongoDB的文档相当于关系数据库的行,集合相当于表,数据库相当于MongoDB数据库。

 

2.MongoDB内部,每个数据库都包含一个NS文件和一些数据文件,例如有一个silie的数据库,就有silei.nssilei.0silei.1,等一系列的文件。

 

3.日志系统:系统日志(启动MongoDB的时候指定一个logpath参数即可,mongod -logpath=/data/db/log/serverlog.log -logappend)Journal系统(mongod -journal),oplog主从日志(mongod - oplogSize=1024),慢查询日志(mongod --profile=1 --slowns=5)。

 

4.Ctrl+c可以停止数据库,或者使用db.shutdownServer()

 


 

在退出后,需要在第一个CMD窗口中重新输入mongod --dbpath c:\db才可以再次进入Mongo连接数据库。

 

5.插入记录

 

查询数据

 

注意:1.不要预先创建一个集合,在第一次插入数据的时候会自动创建。

      2.在文档中可以存储任何结构的数据,但是在实际应用中存储的还是相同类型的文     档的集合。

  3.每次插入一个数据的时候都会有一个ID

循环插入数据

 

如果还有没有查看到的信息,只需要输入it 就可以继续查看剩下的数据了。

 

6.MongoDB主要是支持分布式系统,不支持自增主键。

 

7.每一个集合都有一个ID字段,字段默认类型是ObjectId,也可以不是ObjectId,但是在同一个集合中必须唯一。

 

8.普通查询

 

JAVA SHELL查询

 

把游标转换成真实的数组类型

 

条件查询

 

 

9.findOne()语法,MongoDB SHELL为了避免游标带来的开销,提供了一个findOne()函数,这个函数和find()一样,但是它返回的是游标里的第一条数据,或者返回NULL

 

 

10.通过limit限制结果集的数量

 

 

11.修改记录

 

12.删除记录

 

 

13.条件操作符

db.collection.find({“field”:{$gt:value}}); field大于value

db.collection.find({“field”:{$lt:value}}); field小于value

db.collection.find({“field”:{$gte:value}}); field大于等于value

db.collection.find({“field”:{$lte:value}}); field大于等于value

 

14.$all匹配所有

db.user.find({age:{$all:[6,8]}});

满足括号内的所有值才可以。

 

15.$exit判断字段是否存在

db.user.find({age:{$exit:true}});

db.user.find({age:{$exit:false}});

 

16.$mod取模运算

例如取模查询age取模10等于1的数据,db.student.find({age:{$mod:[10,1]}});

 

17.$ne不等于

db.student.find({age:{$ne:20}});

 

18.$in包含

查询在某一范围内的数据db.student.find({age:{$in:[5,7,9]}});

 

19.$nin不包含

db.student.find({age:{$nin:[5,7,9]}});

 

20.$size匹配数组元素的个数

db.student.find({age:{$size:4}});

 

21.count查询记录条数

db.users.find().count();

返回限制之后的的记录数量,要用count(true)或者是count(!0)才可以。

db.things.find().limit(5).count(true);

db.things.count(); //返回的是things表的数据量

 

22.skip限制返回记录的起点

例如,从第三行开始记录五条数据,db.things.find().skip(3).limit(5);

 

23.sort排序

db.things.find().sort({j:1}); //升序

db.things.find().sort({j:-1}); //降序

 

24.distinct去掉重复值

查询去掉重复值的方法,返回的是一个新的列表,类似关系数据库中的视图操作。

db.things.distinct(“j”);

 

25.group分组统计

Db.things.group(

{key:{a:true , b:true},

cond:{active:1},

reduce:function(obj,prev){prev.csum += obj.c; },

initial:{ csum:0 }

});

Key 要分组的列

Cond 分组条件

Reduce 分组的计算方法

Initial 分组的初始值

 

26.存储过程

db.things.save.({_id:”get_count” , value:function(){

return db.c1.count();}});

db.eval(‘get_count()’);

 

27.数据更新

update命令

db.thins.update(criteria  ,objNew  ,  upsert  ,   multi );

Criteria //查询条件,类似关系数据库WHERE的内容

objNew  //更新操作符,类似关系数据库SET后面的内容

upsert   //如果不存在update的记录则是否插入objNew 的内容,true是插入,false   不插入

multi  //默认是false,只更新找到的第一条记录。如果是true,按条件查出来的多条   记录全部更新。

例如:

db.things.insert({count:2,test2:”silei”});

db.things.insert({count:3,test2:”silei”});

db.things.find();

 

db.things.update({“count”:{$gt:1}},{$set:{“test2”:”OK1”}});

db.things.find();

 

db.things.update({“count”:{$gt:1}},{$set:{“test2”:”OK1”}},false,true);

db.things.find();

 

db.things.update({“count”:{$gt:1}},{$set:{“test2”:”OK1”}},true,false);

db.things.find();

 

save命令

db.things.save(obj);

没有就插入,有就更新。

 

28.数据更新操作符

$inc file的这一项的值加上value

{$inc:{file:value}}

$set

{$set:{file:value}}

$unset 删除字段

{$unset:{file1}}

$push 把value的值加到file中去,file必须是数组类型,如果file不存在,则加一个 数组类型进去

{$push:{file:value}}

$pushAll 一次追加多个值

{$pushAll:{file:value_arrary}}

$addToSet 加value到数组内,只有不存在这个值时才增加

{$addToSet:{file:value}}

$pop

{$pop:{file:-1}} 删除第一个值

{$pop:{file:1}} 删除最后一个值

$pull

{$pull:{file:value}} 删除一个等于value的值

$pullAll

{$pullAll:{file:value_arrary}} 删除数组内的多个值

$rename

{$rename:{file:value}} 完成字段的重命名

 

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

MongoDB 学习笔记

(the little MongoDB book笔记) Install 3. Create a new text file in the bin subfolder named mongodb...

MongoDB学习笔记

从接触计算机学习开始,我所使用的数据库就是MySQL,Oracle这样的关系型数据库。早就听说了NoSQL的概念,也对其有代表性的非关系型数据库mongoDB有所耳闻,一直想学习学习这项从未使用过的技...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

[学习笔记] - Ubuntu 下安装MongoDB

MongoDB提供了linux平台上32位和64位的安装包,你可以在官网下载安装 包。下载地址:MongoDB下载安装包,并解压 tgz(以下演示的为 Ubuntu 14.04 下安装) 。 下载安...

mongodb学习笔记

mongodb笔记

MongoDB学习笔记02:基本操作

文章转自:http://ls-la.me/2015/07/24/mongo-02/ 这一节来看看MongoDB的CURD操作。启动mongod之后,用./bin/mongo进入交互命令行: ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)