BSON
BSON是在MongoDB中用来存储数据和网络数据交换的一种类JSON的二进制形式的存储格式,简称Binary JSON,相比JSON而言,BSON支持更多、更复杂的数据类型,比如Date和BinData等类型;同样,也兼有很多优点:轻量型、可遍历性、高效性。
MongoDB使用BSON这种数据结构转化为文档(Document),是因为其schema-free(模式自由)的特性,无需定义任何结构,可以把完全不同结构的文件存储到一个数据库中。如下MongoDB中常见BSON格式的Document样例:
{
title:"MongoDB",
last_modified:new Date(),
last_editor:"jizg",
content:"test for",
status:"Deleted"
}
CRUD
BSON格式的数据在MongoDB中是无处不用的,是最基础的。接下来通过MongoDB自带的shell来看一下数据库必备技能CRUD的使用。假设有个名为blog的数据库,其里边有个名为user的集合(集合相当于表)。现在要往blog的user中插入10个文档(基本属性为uid、userName ),如下:
代码样例 | |
数据插入操作 insert | 1.首先切换到blog数据库: use blog 2.创建user 集合:db.createCollection('user') 3.向集合中插入数据: for(i=0;i<11;i++){ db.user.insert({uid:i,userName:'jizg'+i}); } |
数据查询操作 find | 1. 查询集合所有数据: db.user.find() 2. 查询uid为1的数据: db.user.find({uid:1}) 或 db.user.findOne({uid:1}) 3. 不显示_id,按uid降序并只取前5条数据: db.user. find ({}, {_id : 0}). sort ({uid : -1}).limit(5) |
数据修改操作 update | 1. 修改uid为2的数据,修改其userName为lfsfxy9: db.user.update({uid:2},{$set:{userName:'lfsfxy9'}}) |
数据删除操作 delete | 1. 删除uid为2,name为lfsfxy9的数据: db.user.remove({uid:2,userName:'lfsfxy9'}) 2. 如果不给指令设置参数,则会把user集合的数据全部删除 |
当然这是最简单的操作样例,在实际应用中,还会涉及到批量操作以及很多关系型数据库中普遍遇到过的问题。
参考: