首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在坞中使用mongo导入导入多个不同的集合

问如何在坞中使用mongo导入导入多个不同的集合
EN

Stack Overflow用户
提问于 2021-10-28 21:02:05
回答 1查看 656关注 0票数 1

我试图将多个json文件导入到mongo数据库中的不同集合中,但只保留了最后一个导入的集合。

这是我的船坞-合成人. This:

代码语言:javascript
复制
version: "3.7"
services:
  api:
    build: .
    restart: always
    ports:
      - 8080:8080
    depends_on:
      - mongo-seed
  mongo-seed:
    build: ./mongo
    depends_on:
      - mongo_db
  mongo_db:
    image: "mongo:4.4.3"
    restart: always
    environment:
      - MONGO_INITDB_DATABASE="mongo_db"
    ports:
      - 27017:27017

以及芒果种子文件:

代码语言:javascript
复制
FROM mongo

COPY ./data/users.json /users.json
CMD mongoimport --drop --host mongo_db --db aada_backend --collection users --type json --file /users.json --jsonArray

COPY ./data/headphones.json /headphones.json
CMD mongoimport --drop --host mongo_db --db aada_backend --collection headphones --type json --file /headphones.json --jsonArray

COPY ./data/earbuds.json earbuds.json
CMD mongoimport --drop --host mongo_db --db aada_backend --collection earbuds --type json --file /earbuds.json --jsonArray

我在网上找不到关于如何将多个集合导入一个数据库的任何内容,我如何才能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-29 01:11:48

发生这种情况是因为您在Dockerfile中使用了不能有多个CMD指令。。当你这样做,只有最后一个将被执行,这是由设计。在你的种子容器里你能做什么-

  • 将jsons复制到种子容器中。
  • 将包含mongoimport命令的shell脚本复制到种子容器中。
  • 让CMD执行这个脚本。

例如:

代码语言:javascript
复制
FROM mongo
WORKDIR /jsondata

COPY ./jsondata/ .
COPY ./seed.sh .

RUN chmod +x seed.sh

CMD ["sh", "-c", "/jsondata/seed.sh"]

然后,在docker-come.yaml中,可以这样配置它:

代码语言:javascript
复制
version: "3.8"
services:
  mongo_db:
    image: mongo
    ports:
      - 27017:27017

  mongo-seed:
    build: .
    depends_on:
      - mongo_db
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69760892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档