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. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性