위 코드는 한 번에 100개 항목만 업데이트하고, 때로는 몇 백 개 항목만 업데이트되고, 200,000개 항목의 데이터를 한 번에 업데이트할 수 없는 이유는 무엇인가요?
ringa_lee2017-05-17 10:03:33
제가 잘 이해하지 못하는 몇 가지 사항이 있습니다.
쉘 스크립트처럼 보이죠?
조건에 {"Properties.AccountId":null}
가 있는데 왜 if(value.Properties.AccountId == null)
가 필요한가요? 아니면 판단하고 싶은 것이 AccountId === null
인가요?{"Properties.AccountId":null}
,为什么还要if(value.Properties.AccountId == null)
?或者你想判断的是AccountId === null
?
update
方法的详细说明可以查看文档。文档中的定义是:db.collection.update(query, update, options)
,所以不知道最后的false
和true
本意是想查什么?upsert
和multi
?这样的话应该是:
db.logging.update({'_id':ObjectId(value._id.str)},{$set:{'Properties.AccountId':value.Properties.EnterpriseId}}, {upsert: false, multi: true})
不过你用的是_id
条件应该也没有multi
update
메소드에 대한 자세한 설명은 문서에서 확인할 수 있습니다. 문서의 정의는 db.collection.update(query, update, options)
이므로 마지막 false
및 true<가 무엇인지 알 수 없습니다. /code>는 무엇을 확인하고 싶으신가요? upsert
및 multi
이 경우 다음과 같아야 합니다.
으아악
그러나 _id
조건을 사용하는 경우에는 multi
와 관련이 없어야 합니다. 뭐, 원래 의도를 명확하게 밝히는 게 좋을 테니 추측은 안 할게요.