찾다

 >  Q&A  >  본문

MongoDB怎样批量执行命令?

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

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

天蓬老师天蓬老师2804일 전681

모든 응답(2)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-24 09:12:43

    실행할 코드를 모두 all.js 파일에 직접 작성한 뒤, mongo localhost/zip all.js을 이용해 실행해 보세요.

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-24 09:12:43

    @Huan Du의 대답은 MongoDB Shell의 스크립트 모드를 사용하는 것입니다. 이는 Shell에서 직접 명령을 입력하는 것과 약간 다르다는 점에 유의해야 합니다. 예를 들어 show dbs는 합법적인 Javascript 언어가 아니기 때문에 사용할 수 없습니다. . 또 다른 예를 들어, 쿼리는 처음 20개 문서를 직접 표시하는 대신 Cursor를 반환합니다. 구문 오류와 같은 오류 메시지가 표시됩니다.

    구체적인 문서는 여기를 참조하세요
    MongoDB 스크립팅
    mongo Shell용 스크립트 작성
    서버측 JavaScript

    회신하다
    0
  • 취소회신하다