MongoDB学习笔记

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"});









































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值