前面已经基本介绍了MongoDB是什么,以及其 应用场景。那么本章内容开始学习一些简单的文档操作,以便对MongoDB有更好的认识。
2.1) 简单插入文档
在数据库中,数据插入是最基本的操作
在MongoDB中使用db.collection.insert(document);语句来实现插入操作.其中,collection指的是文档数据,collection是存档文档数据的集合
例如:所有用户的信息存放在users集合中,每个用户的信息为一个user文档,插入数据: db.users.insert(user);
如果想要查看已经插入的users文档,则可以使用db.users.find()查看当前库users集合中的数据。如果想要查看当前数据库中的集合列表,可以使用:show collections.
2.2)批量插入文档
insert语句不但可以插入单个文档,还可以一次性插入多个文档。只不过插入多个文档时,insert命令的参数为一个数组,数组元素为BSON格式的文档。
例如:
db.users.insert([
{name:"zhansan",age:23},
{name:"lisi",age:21}
]);
2.3)查询与投影
在MongoDB中,查询执行特定的文档集合,查询设定条件,指明MongoDB需要返回的文档;查询也可以包含一个投影,指定返回的字段。
在关系型数据库中,投影指的是对列的筛选,类似的,在MongoDB中,投影指的是对出现在结果集中的对象属性的筛选。
下面的一段代码:实现了在查询过程中指定了一个查询条件个一个排序修饰:
db.users.find({age:{$gt:30}}).sort({age:1});
2.4)文档查询--find方法
MongoDB中查询检索数据时使用find命令:
db.collection.find(criteria,projection);
其中参数的具体含义是指:
criteria --查询条件,文档类型,可选。
projection --返回的字段,文档类型,可选,若需返回所有字段,则忽略此函数
find命令的两个可选参数,criteria为查询条件,projection为返回的字段,如果不传入条件数据库会返回该集合的所有文档。
2.5)修改文档 --update命令
update命令可以更新指定文档的特定字段值,也可以替换整个文档。注意:如果更新操作会增加文档大小,那么MongoDB将会重新分配空间并重新定位
update()命令的使用如下:
db.collection.update(query,update,{upsert:boolean,multi:boolean});
其中各项参数的含义是:
query:查询条件,文档类型,和find中的查询条件写法一致。
update:修改文档,文档类型。
upsert(可选):如果值为true,那么当集合中没有匹配时,创建文档。默认是false
multi(可选):如果值为true,那么将更新全部符合条件的文档,否则仅更新一个文档。默认是false
实例代码如下:
db.users.update({age:{$gt:30}},{$set:{name:"hehe"}},{multi:true});
2.6)修改文档 --save命令
save命令可以更新或插入一个新文档。注意的是:与update命令不同之处是在save只能对一个文档进行操作。
save命令的使用:
db.collection.save();
参数:
document:新的文档
实例代码如下:
db.users.save({name:"xiaoming",age:25});
2.7)删除文档 --remove命令
需要删除文档时需要使用remove命令。删除文档可以清理掉不需要的数据,释放存储空间,提升检索效率。但是错误的删除会是一场灾难,因此在执行数据删除操作时需要非常的谨慎!
remove命令的使用:
db.collection.remove(query,justOne);
其中的各项参数的含义如下:
query:BSON类型,删除文档的条件。
justOne:布尔类型,true:只删除一个文档,false:默认值,删除所有符合文件的文档。
实例代码如下:
db.users.remove({status:"D"});