mongodb 插入文档 查询文档 删除文档 修改文档

向数据库中插入文档

db.collection.insert()
  该方法可以用来向集合中插入一个或多个文档
   插入一个传对象,插入多个传数组
   当向集合中插入文档时,MongoDB会自动为文档添加_id属性
  该属性值是自动生成的,该属性是为了标识文档的唯一性
  也可以手动指定_id属性,如果手动指定了,则数据库不会自动添加,但是手动指定的_id也必须确保唯一,不要手动指定_id   

db.collection.insertOne()
  该方法用于向集合中插入一个文档,它只能接受一个对象作为参数

db.collection.insertMany()
  该方法用于向集合中插入多个文档,它只能接受一个数组作为参数
相关代码:
    use test;
    show collections;
    db.stus.find();

   //向stus中插入一个文档
    db.stus.insert({
        name:"gzl",
        age:16
    });

//向stus中插入多个文档
    db.stus.insert([
        {
            name:"zlx",
            age:28
        },
        {
            name:"yxj",
            age:18
        }
    ]);

 db.stus.insert({
        _id:"hello",
        name:"gzz",
        age:16
    });

ObjectId();

文档的查询

db.collection.find(查询条件);
  该方法可以根据指定的条件,查询所有符合条件的文档
  如果不传任何的查询条件,则会查询所有的文档
  查询条件是以对象的形式传递的
  find()无论查询的结果有几个,都会返回一个数组

db.collection.findOne(查询条件);
  查询符合条件的第一个文档  
  findOne()返回的是一个文档对象
查询操作符
    $eq
    $ne
    $lt
    $lte
    $gt
    $gte
    $or
    ...
     语法:
        {查询操作符:条件}
        {字段:{查询操作符:值}}
         例子:
            {$or:[...]}
            {a:{$lt:10}}

    db.collection.count()
        统计集合中文档的数量
    sort()
        指定显示结果的排序规则
    skip()
        跳过指定数量的数据
    limit()
        限制显示数据的最大数量
相关代码:
use test;

db.stus.find();

//查询name为gzl的文档
db.stus.find({name:"gzl"});

db.stus.find({age:18});

db.stus.find({name:"zlx",age:18});

db.stus.find({});

db.stus.findOne();

//findOne()返回的是对象
db.stus.findOne({age:16});

//find()返回的数组
db.stus.find({name:"gzl"})[0].name;

删除文档

db.collection.remove(查询条件)
  该方法用来删除数据库中的指定的文档,这个方法必须传条件
  可以删除一个或多个符合条件的文档,默认是所有的
  如果希望只删除第一个符合条件的文档,则需要在第二个参数传递一个true
 如果传递一个空条件,则会删除集合中的所有文档(慎用),只是清空集合并不会删除集合

db.collection.deleteOne()
  删除一个  
db.collection.deleteMany()  
  删除多个  
db.collection.drop();
  删除集合,如果删除的集合是数据库中的最后一个集合,则会连数据库一起删除   
db.dropDatabase();
 删除整个数据库
相关代码:
//删除name为gzl的文档
db.stus.remove({name:"gzl"});
db.stus.remove({age:16});
db.stus.remove({age:28},true);
db.stus.remove({});

show collections;

db.stus.drop();
db.sts.drop();

show dbs;

db.stus.insert([
    {name:"zlx",isDel:0},
    {name:"yxj",isDel:0},
    {name:"gzz",isDel:0}
]);

修改文档

db.collection.update(查询条件,新的文档,配置对象);
  修改(替换)一个或多个文档
  默认情况下,update()会使用新的文档来替换匹配到的文档
  如果只希望修改文档中的某个字段,则需要使用 修改操作符 完成
修改操作符:
 $inc 修改器$inc可以对文档的某个值为数字型(只能为满足要求的数字)的键进行增减的操作。
 $push 向文档的某个数组类型的键添加一个数组元素,不过滤重复的数据。添加时键存在,要求键值类型必须是数组;键不存在,则创建数组类型的键。
 $addToSet 给数组类型键值添加一个元素时,避免在数组中产生重复数据
 $set 修改文档的指定的属性(字段)
 $unset 删除文档的指定的属性(字段)

 update方法默认情况下只会修改第一个符合条件文档 
 如果需要修改多个文档,则需要传递如下的配置对象
    {multi:true}
 db.collection.updateOne()      
   修改一个文档
 db.collection.updateMany()
   修改多个文档
 db.collection.replaceOne() 
   替换一个文档
相关代码:
db.stus.find();

db.stus.update({age:20},{name:"gzl",age:20});

db.stus.update({name:"gzl"},{$set:{age:18}});

db.stus.update({name:"gzl"},{$unset:{age:1}});

db.stus.update({age:18},{$set:{age:28}},{multi:true});

文档间的关系

一对一(one to one)
夫妻
一对一的关系在MongoDB中可以通过内嵌文档来进行映射
一对多/多对一(one to many / many to one)
用户和订单     作者和文章      文章和评论 ......
 也可以通过内嵌文档来体现一对多的关系
也可以在"多的一方"中保存"一的一方"的id来映射一对多的关系

多对多 (many to many)
商品和分类       老师和学生
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值