目前已经找到一种方法,但是该方法存在问题,即无法有效处理文档过长的情况。
db.area.insert({'number':'010010','province':'内蒙古自治区','city':'呼和浩特市','disc':'新城区','addr':'光华街(十四中家属楼)','jd':'内蒙古自治区呼和浩特市新城区'})
db.area.insert({'number':'010010','province':'内蒙古自治区','city':'呼和浩特市','disc':'新城区','addr':'兴安南路','jd':'内蒙古自治区呼和浩特市新城区'})
cat mon | /usr/local/mongodb/bin/mongo localhost/zip --shell
当insert的文档过长时,该方法会报错,显示unexpected token ILLEGAL和unexpected identifier。但是在Robomongo中执行同样的命令则没有问题。
因为需要批量处理的是insert和update混合的命令,且涉及多个集合,因此无法使用mongoimport。
使用环境为linux
Écrivez tout le code à exécuter directement dans un fichier
all.js
, puis utilisezmongo localhost/zip all.js
pour l'exécuter.La réponse de @Huan Du est d'utiliser le mode script de MongoDB Shell. Il convient de noter que cela est légèrement différent de la saisie directe de commandes dans le Shell. Par exemple, show dbs ne peut pas être utilisé car ce n'est pas un langage Javascript légal. . Pour un autre exemple, la requête renvoie Cursor au lieu d'afficher directement les 20 premiers documents. Il y aura des messages d'erreur, tels que des erreurs de syntaxe.
Voir ici pour une documentation spécifique
MongoDB Scripting
Écrire des scripts pour le mongo Shell
JavaScript côté serveur