MongoDB 增删改查

先创建一张用于测试的表,存入id,name,age,gender,date字段

表名 t_test

id  name       age     gender    	 date
1   张三      18      male      	2019-07-10 00:00:00
2   李四      26      female		2018-06-19 09:00:00
3   王五      20      female	    2018-08-09 09:40:00
4   麻子      20      male	        2019-08-09 15:09:30
5   张飞      29      male	        2019-08-09 15:09:30

一、查询

db.collection.find(query, projection)
  • query :可选,使用查询操作符指定查询条件
  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:

db.getCollection('t_test').find({})  或者  db.es_member.find({})
  1. 条件查询 where

    SQL:SELECT * FROM t_test WHERE gender = "male";
    MongoDB : db.getCollection('t_test').find({"gender":"male "}) 
    
  2. 以时间作为条件 查询2018年9月5日之前的数据

       db.getCollection('t_test').find({"date":{"lte":ISODate("2018-09-05T00:00:00.000Z")}})
    
    
  3. 多条件查询(条件中间用逗号隔开 )

    and

    SQL:SELECT * FROM t_test WHERE gender = "male" and age="20";
    MongoDB : db.getCollection('t_test').find({"gender":"male","age":"20"}) 
    

    or

    select * from t_test where age=20 or name="张三";
    db.t_test.find({"$or":[{"age":"20"},{"name":"张三"}]})
    

    in

    db.getCollection('es_member').find({"name":{"$in" : 
    ["张三",
    "李四"
    ]}})
    

    条件运算符

    (>) 大于 - $gt
    (<) 小于 - $lt
    (>=) 大于等于 - $gte
    (<= ) 小于等于 - $lte
    != 不等于   $ne
    
    select * from t_test where age >= 20;
    db.t_test.find({"age":{"$gte":20}})
    
  4. 模糊查询 like

    --查询name包含 “张”的数据
    SQL:	SELECT * FROM t_test WHERE name LIKE "%张%"
    MongoDB:	db.t_test.find({name://})
    
    --查询name 以“张”开头的数据
    SQL:	SELECT * FROM t_test WHERE name LIKE "张%"
    MongoDB:	db.t_test.find({name :/^/})
    
  5. 查询数量 count

    db.t_test.find().count()
    
  6. 排序 sort() 1代表升序、-1代表降序

    db.t_test.find().sort({"date":1})
    

2、更新

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
  • upsert :
    可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb
    默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

把名字叫张三的更改为张三丰,年龄改为23岁

SQL:update t_test set age=23,name="张三丰" where name="张三";
db.t_test.update(
		{"name":"张三"},
		{"$set":{"name":"张三丰"}}
		
)

批量更新

把张三,李四,王五的年龄改为 50岁

db.getCollection('t_test').update({"name":{"$in" : 
["张三",
"李四",
"王五"

]}},{$set:{"age":"50"}},{multi:true})

3、插入

db.collection.insertOne():向指定集合中插入一条文档数据
db.collection.insertMany():向指定集合中插入多条文档数据

insert into t_test id,name,age,date values("6","xuxu","18");

MongoDB: db.t_test.insert({"name":"xuxu","type":"normal"})

4、删除

remove() 方法的基本语法格式如下所示:

db.collection.remove(
   <query>,
   <justOne>
)

如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)
  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值
    false,则删除所有匹配条件的文档。
  • writeConcern :(可选)抛出异常的级别。
db.t_test.remove({"id":"1"})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值