运行 MongoDB/ Robo3t 中的批处理操作
Running batch operations in MongoDB/ Robo3t
我在一个文件中有一个用户列表,我想在一个集合中更新他们的记录。
即
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:\"""\"},{ $set:{x:1} }) ") }' | mongo
选项 B) mongo导入
第1步)将用户列表导入临时集合数据库:
mongoimport --type csv -d test -c usersToUpdate --headerline file.csv
file.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()
我在一个文件中有一个用户列表,我想在一个集合中更新他们的记录。
即
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:\"""\"},{ $set:{x:1} }) ") }' | mongo
选项 B) mongo导入
第1步)将用户列表导入临时集合数据库:
mongoimport --type csv -d test -c usersToUpdate --headerline file.csv
file.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()