mongodb遍歷后,更新每條數(shù)據(jù)某個(gè)字段的值,但只能執(zhí)行部分(約2000條),之后報(bào)錯(cuò)(腳本執(zhí)行失?。?/h1>
qq_YAO_4
2017-11-30 18:00:49
下面的2是執(zhí)行的代碼,使用的工具是robomongo。var?begin?=?1499675090;
var?end?=?1499675198;
var?t?=?begin;
while(t<=end){
????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;
???????
}也使用過下面4和5代碼,依舊不行var?begin?=?1499675090;
var?end?=?1499675198;
var?t?=?begin;
while(t<=end){
????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;
???????
}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);
???????}
??????
??}
)請(qǐng)問各位有使用過mongodb的大神,為什么會(huì)出現(xiàn)js腳本執(zhí)行一部分,剩下沒執(zhí)行完就報(bào)錯(cuò)這種情況,(當(dāng)數(shù)據(jù)量小于2000條時(shí)可以執(zhí)行完不會(huì)報(bào)錯(cuò))非常感謝。
2 回答

qq_YAO_4
TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超0個(gè)贊
忘記說,最后這個(gè)問題解決了,直接在linux上跑可以,所以應(yīng)該是這個(gè)robomongo的問題!

慕慕0098458
TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超1個(gè)贊
一般寫這種先執(zhí)行一遍查詢,里面不帶任何操作??匆幌聰?shù)據(jù)有無問題。可以看一下if(item.account_login!=?undefined&&item.account_login!=?null) 里面加一個(gè)!=‘’看能走多少
添加回答
舉報(bào)
0/150
提交
取消