mongo shell

常用shell命令

1.批量更新指定字段
db.getCollection('CustomerBelongMongo').find({}).forEach(
   function(item){                
       db.getCollection('CustomerBelongMongo').update({"_id":item._id},{$set:{"updateTime": ISODate("2019-11-04T14:44:52.448Z")}})
   }
)


2.聚合查询
db.LogMongo.aggregate([ 

    "$match" : {
        "$and" : [ { "operationId" : 191} , { "logType" : 3} , 
        { "updateTime" : { "$lte" : ISODate("2019-11-04T15:59:59.999Z")}} , 
        { "updateTime" : { "$gte" : ISODate("2019-10-31T16:00:00.000Z")}}]
    }
} , 
{ "$project" : { "date" : { "$dateToString" : { "format" : "%Y-%m-%d" , "date" : "$updateTime"}}}} , 
{ "$group" : { "_id" : "$date" , "count" : { "$sum" : 1} , "date" : { "$first" : "$date"}}} , 
{ "$sort" : { "date" : 1}}])

3.$in

必须使用[]。表示查找包含指定属性且属性值等于指定数组其中之一元素的文档。(满足数组其中一个元素就能匹配)
db.user.find({age: { $in:[13,73]}})

查找结果:

{ "_id" : ObjectId("5ca7a4b0219efd687462f965"),"age" : 73 }
{ "_id" : ObjectId("5ca7a4c4219efd687462f968"), "age" : 13 }

4.$or

查找满足多个条件中某一个的文档。相当于mysql中or的作用。(满足某一个条件就能匹配)

db.user.find({$or:[{name:"mike"},{name:"jack"}]} )
查找结果:

{ "_id" : ObjectId("5ca7a4b0219efd687462f965"), "name" : "jack"}
{ "_id" : ObjectId("5ca7a4b7219efd687462f966"), "name" : "mike"}

5.$all

必须使用[]。表示查找包含指定属性且属性值等于指定数组其中全部元素的文档。(满足数组所有元素就能匹配)

db.user.find({hobby:{$all:["足球","羽毛球"]  } })

查找结果:

{ "_id" : ObjectId("5ca7a4c4219efd687462f968"),"hobby" : [ "羽毛球", "篮球", "足球" ] }

6.按多个条件查询数组元素
db.getCollection('sys_user').find({"platformList.platformCode":"xxx","userName":"xxx"})
db.getCollection('sys_user').find({"platformList":{$elemMatch:{"platformCode":"xxx"}},"userCode":"xxx"})


7.$exists
db.collectionname.find( { fieldname: { $exists: true } } ):查询包含指定字段的文档(不论字段值是否为null)
db.collectionname.find( { fieldname: { $exists: false } } ):查询不包含指定字段的文档
示例:
{ a: 5, b: 5, c: null }
{ a: 3, b: null, c: 8 }
{ a: null, b: 3, c: 9 }
{ a: 1, b: 2, c: 3 }
{ a: 2, c: 5 }
{ a: 3, b: 2 }
{ a: 4 }
{ b: 2, c: 4 }
{ b: 2 }
{ c: 6 }

db.collectionname.find( { a: { $exists: true } } ):查询所有包含a字段的文档数据
db.collectionname.find( { a: { $exists: false } } ):查询所有不包含a字段的文档数据
$exists: boolean:boolean为true表示包含,反之则表示不包含。


8.$pull
用于数组元素的删除,可以删除指定元素或符合条件的所有元素。


9.$push
用于数组元素的添加,可以添加指定元素或多个元素。(已存在的值仍可新增,可能存在重复数据)


10.$addToSet
用于数组元素的添加,可以添加指定元素或多个元素或整个数组。(已存在的值不再新增,不存在重复数据)

11.模糊查询并移除

db.xxx.remove({"description":/^.*支付方式.*$/})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值