繁体   English   中英

在 MongoDB/Robo3t 中运行批处理操作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM