zoukankan      html  css  js  c++  java
  • 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();
    
  • 相关阅读:
    C++虚函数表解析(转)
    学习网址
    css 段落文字换行问题
    移动端fixed兼容问题
    半数集1
    汇编寄存器
    设计模式概述
    Vector用法介绍
    汇编PC硬件基本特征
    android 反编译总结
  • 原文地址:https://www.cnblogs.com/Nick-Hu/p/14802556.html
Copyright © 2011-2022 走看看