1.【原创】MongoDB的基本CRUD操作
MongoDB的基本操作
一、常用操作
//查看所有数据库
show dbs;
//选中库
use s10;
//显示所有集合
show collections;
//创建student集合
db.createCollection("student");
//删除tb_person集合
db.tb_person.drop();
//删除所有数据库:不会删除默认的admin、config、local数据库
db.dropDatabase();
二、插入操作(insert)
1.1.db.collection.insertOne();
将一个文档插入一个集合中。
//插入一个文档到一个集合,语义更加明确,ver3.2以上版本才支持
db.tb_person.insert({"name":"nick","age":28,"sex":1});
1.2.db.collection.insertMany();
将多个文档插入一个集合中。
//插入多个文档到一个集合,语义更加明确,ver3.2以上版本才支持
db.tb_person.insert([
{"_id":"2","name":"nick1","age":32,"sex":1},
{"name":"nick2","age":33,"sex":1},
{"name":"nick3","age":34,"sex":1}
]);
1.3.db.collection.insert();
插入一个或多个文档插入到一个集合中。
- 每插入一个文案,不指定"_id"值,MongoDB则会自动生成该条数据的唯一标识。
1.3.1.插入一个文档
//插入一个文档到一个集合
db.tb_person.insert({"name":"nick","age":28,"sex":1});
1.3.2.插入多个文档到一个集合
"_id"值生成时调用了ObjectId();方法生成,也可手动调用该方法生成。
//插入多个文档到一个集合,不指定"_id"值,MongoDB则会自动生成该条数据的唯一标识
db.tb_person.insert([
{"_id":"1","name":"nick1","age":29,"sex":1},
{"name":"nick2","age":30,"sex":1},
{"name":"nick3","age":31,"sex":1}
]);
三、删除操作(delete)
3.1.db.collection.deleteOne();
- 版本3.4以后才支持
//相当于remove();方法指定了<justOne>参数,默认删除最先存入的一个
db.tb_person.deleteOne({});
//相当于remove();方法指定了<justOne>参数,默认删除匹配条件且最先存入的一个
db.tb_person.deleteOne({"age":31});
3.2.db.collection.deleteMany();
//删除多个
db.tb_person.deleteMany({"sex":1,"_id":"1"});
3.3.db.collection.remove();
/*条件必传,指定条件删除集合中的文档,默认删除匹配的多个,只删除一个时,需要指定第二个参数<justOne>为true,输入条件时注意,如果文档存入时使用了引号包裹,删除时必须带引号,否则匹配失败*/
db.tb_person.remove({"_id":"1","name":"nick1"},true);
/*条件必传,删除集合中所有文档,类似于清空集合的功能,但是是以先匹配再删除的方式进行,所以效率较低*/
db.tb_person.remove({});
//传入空条件时,<justOne>参数依然生效,默认删除最先存入的一个
db.tb_person.remove({},true);
//如果要全部清空集合,可使用此方法直接删除该集合
db.tb_person.drop();
四、修改操作(update)
//修改最早插入的一条,与update()默认状态一致
db.tb_person.updateOne({"age":34},{$set:{"name":"tom","address":"江西","city":"九江"}});
//修改符合条件的多个文档
db.tb_person.updateMany({"age":34},{$set:{"name":"tom","address":"江西","city":"景德镇"}});
//更新符合条件的整个对象
db.tb_person.update({"age":33},{"name":"tom"});
//使用$set操作符更新最先插入的一条文档的指定字段,没有该字段则会添加
db.tb_person.update({"age":14},{$set:{"name":"tom","address":"江西"}});
//使用$unset操作符删除最先插入的一条文档的指定字段
db.tb_person.update({"age":14},{$unset:{"name":"tom","address":"江西","city":""}});
//配置multi属性,更新多个,更多参数配置参照官网文档
db.tb_person.update(
{"age":34},
{
$set:{"address":"北京"}
},
{
multi:true
}
);
//替换最先插入的一个对象,更多参数配置参照官网文档,ver3.2以上才有
db.tb_person.replaceOne(
{"age":34},
{"age":34,"address":"天津"}
);
db.tb_person.find({"age":34});
五、查询操作(query)
//查询全部:返回list
db.tb_person.find();
//条件条件:返回list,不支持类似的嵌套查询
db.tb_person.find({"name":"nick2","age":30,"hobby":["sleep"]});
//查询最先插入的一条:返回文档对昂
db.tb_person.findOne({"age":33});
//查询最先插入的第二条:返回list
db.tb_person.find({"age":33})[1];
//查询所有数量(常用)
db.tb_person.find({}).count();
//查询所有数量
db.tb_person.find({}).length();
//查询符合条件的数量
db.tb_person.find({"age":33}).count();
db.tb_person.find({"age":33}).length();