mongodb 的 forEach用法

alt

努力不一定会成功,可不努力会很轻松哦

MongoDB forEach 说明

forEach方法中的function回调有三个参数:

  • 遍历的数组内容
  • 对应的数组索引
  • 数组本身

MongoDB forEach 使用案例

MongoDB数据插入、删除、更新、批量更新某个字段

批量更新某个字段

例1

1
2
3
4
5
db.getCollection('bond_sentiment_news').find({"source" : 2,"siteUrl" : "http://www.21jingji.com/"}).forEach(
function(item){
db.getCollection('bond_sentiment_news').update({"_id":item._id},{$set:{"siteName":"21经济网"}})
}
)

例2

1
2
3
4
5
db.getCollection('my_booking').find({"hospitalName":/xx医院/,openId:/^2/}).forEach(
function(item){
db.getCollection('my_booking').update({"_id":item._id},{$set:{"payType": "1"}})
}
)

查询出hospitalName是xx医院和openId以2开头的所有记录,并且更新my_booking表中的payType为1.

例3

1
2
3
4
5
db.getCollection('my_booking').find({"hospitalName":/运城市中心医院/,openId:{$not:/^2/}}).forEach(
function(item){
db.getCollection('my_booking').update({"_id":item._id},{$set:{"outTradeNo1": item.outTradeNo2}})
}
)

查询出xx医院和不已2开头的openId的所有记录,并且将每条记录的outTradeNo2赋值给outTradeNo1.

MongoDB 数组遍历操作 forEach

1
2
3
4
5
db.User.find().forEach(
function(item){
db.User.update({"_id":item._id},{"$set":{"LastUpdate":item.CreateAt}},false,true)
}
)

MongoDB 更新每条数据某个字段的值

例1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var begin = 1499675090;
var end = 1499675198;
var t = begin;
while(t<=end){< span>
db.getCollection('event').find({createdDate:{$lt:t+100, $gte:t}}).forEach(
function(item){
if(item.account_login!= undefined && item.account_login!= null){
item.account_login = item.account_login.substr(0,5)+'123456';
db.getCollection('event').save(item);
}

};
);
t+=100;

}

例2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var begin = 1499675090;
var end = 1499675198;
var t = begin;
while(t<=end){< span>
var aa=db.getCollection('event').find({createdDate:{$lt:t+100, $gte:t}})
aa.forEach(
function(item){
if(item.account_login!= undefined && item.account_login!= null){
item.account_login = item.account_login.substr(0,5)+'123456';
db.getCollection('event').save(item);
}

};
);
t+=100;

}

1
2
3
4
5
6
7
8
9
10
11
12
db.getCollection('event').find().forEach(
function(item){

if(item.account_login!= undefined&&item.account_login!= null){

item.account_login = item.account_login.substr(0,5)+'123456';

db.getCollection('event').save(item);
}

}
)

MongoDB 更新字段操作

1
2
3
4
5
db.getCollection('book').find({}).forEach(
function(X){
x.age = new NumberInt(x.age);// 将字符串转化为数字
db.book.save(x);//保存数据
});

添加字段或更新值

1
2
3
4
5
6
7
8
9
db.getCollection('test').update(
{},
{
$set:{
'createTime':'2017-06-29 08:08',
'updateTime':'2017-06-29 08:08
}
}
);
-------------本文结束感谢您的阅读-------------

本文标题:mongodb 的 forEach用法

文章作者:Wang Jiemin

发布时间:2019年05月21日 - 12:05

最后更新:2019年05月21日 - 13:05

原始链接:https://jiemin.wang/2019/05/21/mongodb-forEach/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%