MongoDB怎样批量执行命令?

 东东84321 发布于 2022-10-26 02:18

目前已经找到一种方法,但是该方法存在问题,即无法有效处理文档过长的情况。

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

2 个回答
  • @Huan Du 的答案是在用 MongoDB Shell 的脚本模式,需要注意的是这跟在Shell里直接输入命令有一些小区别,比如 show dbs 是不能用的,因为它不是合法的 Javascript 语言。再比如查询返回的是Cursor,而不是直接显示前20个文档。错误提示会有的,比如说语法错误。

    具体的文档见这里
    MongoDB Scripting
    Write Scripts for the mongo Shell
    Server-side JavaScript

    2022-10-26 23:43 回答
  • 直接将所有要执行的代码写成一个 all.js 文件,然后用 mongo localhost/zip all.js 执行。

    2022-10-26 23:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有