Mongo 的使用笔记

工具

mongo 推荐使用桌面管理工具:Robo 3T / Studio 3T

查询

mongo 我一般用来作为log 存储的数据库,存的是json格式的数据,所以要掌握查询技巧。(注意查询的数据类类型严格区分,状态2 不能使用字符串类型 “2”)

普通查询示例:

db.getCollection('admin_log').find({"name":"admin","status":2,"content.option":"delete"})

模糊查询:($or)

db.getCollection('admin_log').find({"status":1,"msg.action":"TrackingNewMsg",$or:[{"mq_id":{"$regex":"mq200818"}}]})

查询数量:

db.getCollection('admin_log').find({"name":"admin","status":2,"content.option":"delete"}).count()

<, <=, >, >= ($lt, $lte, $gt, $gte )

db.getCollection('admin_log').find({'status' : {'$gte' : 20, '$lte' : 30}});

使用in, not in ($in,$nin)

db.getCollection('admin_log').find({'status' : {'$in' : [10, 11, 12]}});

查询null

db.getCollection('admin_log').find({'status' : null);

查询使用 like (mongoDB 支持正则表达式)

db.getCollection('admin_log').find({"name":/hurry/}); 

时间查询:(ISODate() 或 Date() 查询)

# 大于某个时间
db.getCollection('admin_log').find({"update_time":{"$gt":ISODate("2017-04-20T01:16:33.303Z")}}) 
#小于某个时间
db.getCollection('admin_log').find({"update_time":{"$lt":ISODate("2017-04-20T01:16:33.303Z")}}) 
#某个时间段
db.getCollection('admin_log').find({"$and":[{"update_time":{"$gt":ISODate("2017-04-20T01:16:33.303Z")}},{"updated_time":{"$lt":ISODate("2018-12-05T01:16:33.303Z")}}]})
#某个时间段
db.getCollection('admin_log').find({"update_time":{"$gte":ISODate("2017-04-20T01:16:33.303Z"),"$lte":ISODate("2018-12-05T01:16:33.303Z")}})

删除

(删除条件写在remove() 里面)

db.getCollection('admin_log').remove({"status":1,"msg.action":"TrackingNewMsg",$or:[{"mq_id":{"$regex":"mq200818"}}]})

新增

新增可以用:insert()或save()
示例:

db.getCollection('admin_log').insert({“age”:18,"name":"小明"})
db.getCollection('admin_log').save({“age”:18,"name":"小李"})

3.2 版本之后新增了 db.collection.insertOne() 和 db.collection.insertMany(),分别用于向集合插入一条和多条。

db.getCollection('admin_log').insertOne({“age”:18,"name":"小明"})
db.getCollection('admin_log').insertMany([{"age":18,"name":"小明"},{"age":18,"name":"小李"}])

修改

更新使用update()方法。如果需要批量更新的话需要加上 multi,否则只更新一条数据

db.getCollection('admin_log').update({"age":18},{$set:{"age":20}},{multi:true})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值