MongoDB的CRUD命令

132 阅读1分钟

说明

  • collects:代指集合
  • object:代指对象
  • filterObj:代指过滤到需要的数据
  • multi:属性名,表示是否多选

create新增

  • db.collects.insert(obj); // 插入数据
  • db.collects.insertOne(obj); // 插入一条数据
  • db.collects.insertMany([obj,obj,obj]); // 插入多条数据

read查询

  • db.collects.find(obj, filterObj);
  • db.collects.findOne(obj); // 一般查询只有一条数据满足条件的情况

常用操作符

符号对应转义符
<$lt
<=$lte
大于$gt
>=$gte
!==$ne
逻辑或in(in(或or)
逻辑非$nin
正则匹配/^f/
函数$where
过滤对象中,值为1的指展示此列,值为0指隐藏此列。ID字段可以为1,可以为0,其他字段1和0不能混用。

查询结果只展示性别列,不展示ID列,如下:
db.collects.find({age:18}, {sex:1,_id:0});

查询年龄大于3岁的,如下:
db.collects.find({age:{$lt:3}});

查询年龄为3岁或5岁的,如下:
db.collects.find({age:{$in:[3,5]}});
或者这样:
db.collects.find({$or:[{age:3},{age:5}]});

查询所有名字以f开头的,如下:
db.collects.find({name: /^f/});

查询爱好是打球,且家在东北的,如下:
db.collects.find({$where:function(){
    return hobby === 'play a ball' && home === '东北'
}});

update编辑

bad

  • db.collects.update(查询条件object,更新的数据object); // 这种方式易造成数据库数据丢失

good

  • db.collects.update(查询条件object,{$set:{更新的数据object},{multi:true}}); // 这种方式能正常查询,但是每次都需带上多个条件

better

  • db.collects.updateOne(查询条件object,更新的数据object);
  • db.collects.updateMany(查询条件object,更新的数据object);

delete删除

  • db.collects.remove(obj);
删除积分在60以上的:
db.collects.remove({score:{$gt:60});