MongoDB学习笔记
来源:互联网 发布:软件系统安全性需求 编辑:程序博客网 时间:2024/06/05 13:27
1.数据逻辑结构:
MongoDB的逻辑结构是一种层次结构。主要由:文档(document)、集合(collection)、数据库(database)这三部分组成
MongoDB的文档(document),相当于关系数据库中的一行记录。
多个文档组成一个集合(collection),相当于关系数据库中的表。
多个集合(collection),逻辑上组织在一起,就是数据库(database)。
一个MongoDB实例支持多个数据库(database)
文档(document)、集合(collection)、数据库(database)的层次结构图如下所示:
关系型数据库
文档(document)
行(row)
集合(collection)
表(table)
数据库(database)
数据库(database)
mongod的主要参数有:
dbpath:
数据文件存放路径,每个数据库会在其中创建一个子目录,用于防止同一个实例多次运行的mongod.lock也保存在此目录中。
port:
对外服务端口。Web管理端口在这个port的基础上+1000
fork:以后台Daemon形式运行服务
1.插入记录:
下面我们来建立一个test的集合并写入一些数据,建立两个对象j和t ,并保存到集合中去.在例子里“>” 来表示是shell 输入提示符
> j = { name : "mongo" };
{"name" : "mongo"}
> t = { x : 3 };
{ "x" : 3 }
>db.things.save(j);
>db.things.save(t);
> db.things.find();
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }
>
2.查询记录:
(1)普通查询:
调用find()方法
例如:
> db.things.find();
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }
(2)条件查询:
关系型数据库:select * from things where name="mongo"
则在MongoDB中如下:
> db.things.find({name:"mongo"}).forEach(printjson);
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
如果查询条件是{a:A,b:B,...}类似 where a=A and b=B and ...
关系型数据库:select j from things where x=4
则MongoDB中:
> db.things.find({x:4}, {j:true}).forEach(printjson);
MongoDB shell提供了一个findone()函数,这个函数和find()函数一样,不过它返回的是游标里的第一条数据,或者返回null,即空数据
通过limit限制结果集数量,例如:
> db.things.find().limit(3);
3.修改记录
将name是mongo的记录的name修改为mongo_new
>db.things.update({name:"mongo"},{$set:{name:"mongo_new"}});
4.删除记录
将用户name是mongo_new的记录从集合things中删除
>db.things.remove({name:"mongo_new"});
MongoDB的逻辑结构是一种层次结构。主要由:文档(document)、集合(collection)、数据库(database)这三部分组成
MongoDB的文档(document),相当于关系数据库中的一行记录。
多个文档组成一个集合(collection),相当于关系数据库中的表。
多个集合(collection),逻辑上组织在一起,就是数据库(database)。
一个MongoDB实例支持多个数据库(database)
文档(document)、集合(collection)、数据库(database)的层次结构图如下所示:
逻辑结构对比:
MongoDB关系型数据库
文档(document)
行(row)
集合(collection)
表(table)
数据库(database)
数据库(database)
mongod的主要参数有:
dbpath:
数据文件存放路径,每个数据库会在其中创建一个子目录,用于防止同一个实例多次运行的mongod.lock也保存在此目录中。
port:
对外服务端口。Web管理端口在这个port的基础上+1000
fork:以后台Daemon形式运行服务
1.插入记录:
下面我们来建立一个test的集合并写入一些数据,建立两个对象j和t ,并保存到集合中去.在例子里“>” 来表示是shell 输入提示符
> j = { name : "mongo" };
{"name" : "mongo"}
> t = { x : 3 };
{ "x" : 3 }
>db.things.save(j);
>db.things.save(t);
> db.things.find();
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }
>
2.查询记录:
(1)普通查询:
调用find()方法
例如:
> db.things.find();
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }
(2)条件查询:
关系型数据库:select * from things where name="mongo"
则在MongoDB中如下:
> db.things.find({name:"mongo"}).forEach(printjson);
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
如果查询条件是{a:A,b:B,...}类似 where a=A and b=B and ...
关系型数据库:select j from things where x=4
则MongoDB中:
> db.things.find({x:4}, {j:true}).forEach(printjson);
MongoDB shell提供了一个findone()函数,这个函数和find()函数一样,不过它返回的是游标里的第一条数据,或者返回null,即空数据
通过limit限制结果集数量,例如:
> db.things.find().limit(3);
3.修改记录
将name是mongo的记录的name修改为mongo_new
>db.things.update({name:"mongo"},{$set:{name:"mongo_new"}});
4.删除记录
将用户name是mongo_new的记录从集合things中删除
>db.things.remove({name:"mongo_new"});
- mongodb 学习笔记一
- mongodb学习笔记
- MongoDB学习笔记
- MongoDB学习笔记
- MongoDB 学习笔记
- mongodb sharding 学习笔记
- MongoDB学习笔记
- mongoDB的学习笔记
- mongodb学习笔记
- [转]MongoDB学习笔记
- mongoDB学习笔记整理
- mongodb学习笔记一
- mongodb学习笔记
- mongodb学习笔记
- mongodb学习笔记
- MongoDB 学习笔记
- MongoDB 学习笔记
- MongoDB学习笔记《三》
- ubuntu中禁用触控板
- cc2531USB dongle 实现MT模式 数据转发 串口
- C/C++小常识
- hdu 1269 迷宫城堡 强连通分量
- mysql分区技术的简单介绍
- MongoDB学习笔记
- SQL SERVER 设置自动备份和删除旧的数据库文件
- Java学习整理系列之Java反射机制
- 读《上学记》
- java IOException
- EJB到底是什么,真的那么神秘吗??
- flex往数据库写入数据
- MVC3直接在根部引入命名空间即可在整站的View中引入命名空间的方法
- java时间操作函数汇总