mg常用的语句 增删改查

记录一下平时使用的mg查询语句,省的忘了

## 插入语句

```
db.mg_crm_user.insertOne({});
db.mg_crm_user.insertMany([{},{}],{ordered:true})  // ordered 就是插入的文档需要顺序
db.mg_crm_user.save();
db.mg_crm_user.insert();//可以插入多个 也可以插入一个
db.mg_crm_user.insertOne({_id:{userId:1,type:0}});  插入的时候可以自定义主键,这种就是复合主键
```

## 查询操作

```
db.mg_crm_user.find();
db.mg_crm_user.find({userType:1},{userType:1}); 第一个参数指定 查询条件 第二个参数指定返回值的映射 就是返回什么字段】
```

## 普通操作符

```
db.mg_crm_user.find({userType:{$ne:1}})  带操作符的操作全部同理
db.mg_crm_user.find({userType:{$in:[1,2]}})  in操作符 里面是一个数组
db.mg_crm_user.find({userType:{$not:{$lt:1}}},{userType:1}) not操作里面要是一个表达式 语法: { field: { $not: { <operator-expression> } } }
```


##  and的写法

```
db.mg_crm_user.find({_id:1},{orders:'1234'});
db.mg_crm_user.find({$and:[{_id:1},{orders:'1234'}]})
db.mg_crm_user.find({_id:{$gt:1,$lt:2}}) 同一个字段的and操作
```


## or操作符

```
db.mg_crm_user.find({$or:[{_id:1},{_id:2}]})
```


## nor 操作符  都不满足的意思

```
db.mg_crm_user.find({$nor:[{_id:1},{_id:2}]}) 都不满足 id=1 和id=2 就是同时不满足这些条件
```

## $exists 包含字段 查询这个字段是否存在

```
db.mg_crm_user.find({_id:{$exists:true}})
```

## $type 字段类型 

db.mg_crm_user.find({_id:{$type:"long"}})

## 数组操作符
all操作符 全部元素满足查询条件 同时有查询条件中的值

```
db.mg_crm_user.find({orders:{$all:["aa","bb"]}})
```


## $elemMatch 同时满足这两个表达式

```
db.mg_crm_user.find({orders:{$elemMatch:{$gt:1,$lt:2}}})
```


## 二者同时使用  

```
db.mg_crm_user.find({orders:{$all:[
{$elemMatch:{$gt:"1000",$lt:""}},
{$elemMatch:{$gt:"1000",$l:"2222"}}
]}})
```


## $regex 正则表达式语法

```
db.mg_crm_order.find({goodsName:{$in:[/^a/,/^v/]}})

db.mg_crm_order.find({goodsName:{$regex:/LIE/,$options:'i'}}) //正则表达式匹配  有lie的商品名称  后面那个字段的意思就是忽略大小写
```


## 分页操作

db.mg_live_gather_data.find({"type":5}).limit(10).skip(1);

## 排序操作

```
db.mg_live_gather_data.find().sort({type:1}) // 1 升序排序  -1 降序排序
```


## 投影文档

```
db.mg_live_gather_data.find({},{type:1}) //只返回 type字段
```


## 更新文档

```
db.<collections>.update(<query>,<update>,<options>)
```


## 这里面的 update需要文档的所有内容 粘贴过来
更新一个字段

```
db.mg_crm_user.update({_id:2289},{$set:{saleProgress:4}})
db.mg_crm_user.update({_id:2289},{$set:{"orders.1":4}}) //更新数组中的一个元素
```


## 删除一个字段

```
db.mg_crm_user.update({_id:2289},{$unset:{saleProgress:""}})
```


## 重命名字段

```
db.mg_crm_user.update({_id:2289},{$rename:{saleProgress:"aaa"}})
```


当名称新的名称存在的时候回覆盖原来的名称  就是会先执行 $unset 原来的名称 之后再 set新字段
## 加法和乘法

```
db.mg_crm_user.update({_id:2289},{$inc:{saleProgress:1}})
db.mg_crm_user.update({_id:2289},{$mul:{saleProgress:1}})
```


## 取最大的值和最小的值

```
db.mg_crm_user.update({_id:2289},{$min:{saleProgress:1}})
db.mg_crm_user.update({_id:2289},{$max:{saleProgress:1}})
```

数组更新操作符

$addToSet 向数组中增添元素

$pop 从数组中移出元素

$pull 从数组中有选择新的移出元素

$pullAll 从数组中选择性的移出元素

$push 向数组中增添元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值