Mongodb 的基本操作
官方文档:https://www.mongodb.com/docs/manual/crud/
数据库相关操作
显示所有数据库
show dbs;
show databases;
进入指定数据库
use 数据库名;
创建文档时,如果文档所在的集合或数据库不存在会自动创建该数据库或集合
显示当前所在数据库
db;
显示当前数据库中所有集合
show collections;
插入文档
插入一个文档
# 方式一
db.collection.insert(doc);
# 方式二
db.collection.insertOne(doc);
# 往 student 集合插入一个文档
db.student.insert({"name":"yl01","age":18,"gender":"male"});
# insertOne()只能插入一个文档,如果有多个文档则只插入第一个文档
db.student.insertOne({"name":"yl03","age":18,"gender":"male"});
向集合中插入文档时,如果没有给文档指定 _id 属性值,则数据库会自动为文档添加 _id 属性值,该属性用来作为文档的唯一标识;执行 ObjectId(); 方法可以自动生成一个 _id 属性值
插入多个文档
# 方式一
dbcollection.insert([doc,doc,......]);
# 方式二
db.collection.insertMany([doc,doc,......]);
# eg: 往 student 集合中插入两个文档
db.student.insert([
{"name":"yl02","age":18,"gender":"female"},
{"name":"yl03","age":18,"gender":"female"}
]);
# insertMany()只能插入一个数组,数组里可以有一个或多个文档
db.student.insertMany([
{"name":"yl04","age":18,"gender":"male"},
{"name":"yl05","age":18,"gender":"female"}
]);
查询文档
查询集合中所有文档
db.collection.find();
# eg: 查询 student 集合中的所有文档
db.student.find();
条件查询
# 查询 student 集合中 name=yl01 的文档
db.student.find({"name":"yl01"});
# 查询 student 集合中 age=18 的第一个文档
db.student.find({"age":18})[0];
db.student.findOne({"age":18});
查询集合中的文档数量
db.collection.find().count();
# eg: 查询 student 集合中的文档数量
db.student.find().count();
db.student.find().length();
修改文档
条件替换
# 方式一
db.collection.update();
# 方式二
db.student.replaceOne();
# eg: 将 student 集合中 name=yl01 的文档替换成 {"age":18},执行之后该文档只剩 age 一个属性,以下两种方式都是一次只能替换一个符合条件的文档
db.student.update({"name":"yl01"}, {"age":18});
db.student.replaceOne({"name":"yl01"}, {"age":18});
条件修改
# 修改 student 集合中 name=yl07 文档的属性: age为19,gender为female(如果有多个符合条件的文档 update 默认只修改第一个)
db.student.update({"name":"yl07"}, {$set:{"age":19,"gender":"female"}});
# 修改符合条件的第一个文档
db.student.updateOne({"name":"yl07"}, {$set:{"age":19,"gender":"female"}});
# 同时修改多个符合条件的文档
db.student.updateMany({"name":"yl07"}, {$set:{"age":19,"gender":"female"}});
db.student.update({"name":"yl07"}, {$set:{"age":19,"gender":"female"}}, {multi:true});
update 既可以只修改一个符合条件的文档,也可以同时修改多个符合条件的文档;updateOne 只能修改一个符合条件的文档;updateMany 可以同时修改多个符合条件的文档
删除文档
删除文档属性
# 删除 student 集合中 name=yl02 文档的 age 属性(因为需要 json 格式,所以不能只写 age 属性,要删除的属性可以随便写)
db.student.update({"name":"yl02"}, {$unset:{"age":1}});
删除一个或多个文档
db.collection.remove();
db.collection.deleteOne();
db.collection.deleteMany();
# eg: 删除 student 集合中 name=yl07 的文档,如果符合条件的文档有多个则删除多个
db.student.remove({"name":"yl07"});
db.collection.deleteMany({"name":"yl07"});
# 只删除符合条件的第一个文档
db.student.remove({"name":"yl07"},true);
db.collection.deleteOne({"name":"yl07"});
remove 默认删除多个符合条件的文档,当第二个参数为 true 时只删除符合条件的第一个文档;deleteOne 只能删除一个符合条件的文档;deleteMany 可以同时删除多个符合条件的文档
删除所有文档
db.collection.remove({});
# eg: 删除 student 集合中的所有文档
db.student.remove({});
删除集合
db.collection.drop();
# eg: 删除 student 集合
db.student.drop();
原文地址:http://www.cnblogs.com/Y-wee/p/16871389.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性