[英]Running batch operations in MongoDB/ Robo3t
我有一个文件中的用户列表,我想更新他们在集合中的记录。
IE
db.getCollection('users').update({username: "<a user>"}, { $set: { <set some values here> }})
如何将用户列表输入此命令或 Robo 3T 中的类似命令或从终端命令行输入?
命令行中的以下选项似乎更简单:
选项 A) 从用户列表中即时生成更新查询并发送到 mongo shell:
cat file.csv | awk '{ print("db.users.update({user:\""$1"\"},{ $set:{x:1} }) ") }' | mongo
选项 B) mongoimport
步骤 1) 将用户列表导入临时集合中的数据库:
mongoimport --type csv -d test -c usersToUpdate --headerline file.csv
文件.csv:
userlist
John
Donald
Jeny
步骤 2) 导入集合后,您可以执行以下操作:
db.usersToUpdate.find({},{_id:0,userlist:1}).forEach(function(theuser){ db.users.update({username: theuser.userlist}, { $set: { <set some values here> }}); print(theuser+" record updated successfully"); })
步骤 3) 最后,您可以使用以下命令清理临时 usersToUpdate 集合:
db.usersToUpdate.drop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.