您的位置:首页 > 数据库 > Mongodb

MongoDB学习笔记

2013-11-29 21:18 239 查看
1.数据逻辑结构:

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"});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: