Code Monkey home page Code Monkey logo

mongo_cluster_example's Introduction

Hi there 👋 I'm Stanislav

Skills And Technologies | Currently Learning | Plans To Learn
Skills And Technologies 💻 I’m Currently Learning 🌱 Plans To Learn 📖
- git.png Git - elastic.png Elasticsearch - Oauth2
- python.png Python - python.png Asyncio - kafka.apache.png Apachekafka
- django.png Django(django-rest-framework.png DRF)/flask.png Flask/fastapi.png FastAPI - Elk
- nginx.png Nginx
- favicon.ico Mssql/postgresql.png PostgreSQL/sqlite icon Sqlite/redis.png Redis
- docker.png Docker/DockerCompose
- makefile icon Make
- Etl
- swagger.png Swagger
- rabbitmq.png Rabbitmq
Coding Activity (7 days) Languages (all time)
Other stats
Codewars GitHub Streak GitHub Stats
codewars GitHub Streak Matwave's github stats
How to reach me 📫

mongo_cluster_example's People

Contributors

matwave avatar

Watchers

 avatar

mongo_cluster_example's Issues

ошибка коллекции

В разделе по поднятию кластера с несколькими шардами по mongo есть еще одна серьезная, на мой взгляд, ошибка, которая связана с созданием коллекции.

Есть команда:
docker exec -it mongos1 bash -c 'echo "db.createCollection("someDb.someCollection")" | mongosh'

Эта команда создает коллекцию. Как видите тут в наименовании коллекции стоит "someDb.someCollection" - то есть вы можете подумать, что коллекция создастся для базы someDB, но это не так. Если посмотреть в документации на эту функцию, то там первый параметр - это просто ИМЯ коллекции. То есть этой командой вы создадите коллекцию, которая НАЗЫВАЕТСЯ someDb.someCollection, а теперь угадайте, к какой базе она будет принадлежать?
По умолчанию, если мы в запускаем mongosh, то он находится в контексте базы test. То есть выполнив команду мы создадим коллекцию someDb.someCollection для базы test.

Почему это незаметно при работе? потому что следующая команда

docker exec -it mongos1 bash -c 'echo "sh.shardCollection("someDb.someCollection", {"someField": "hashed"})" | mongosh'

делает коллекцию шардируемой. И если заглянуть в документацию, то там мы передаем не ИМЯ коллекции, а пространство имен. То есть тут действительно идет сначала база, потом, через точку, название коллекции.
То есть шардировать вы начинаете нужную коллекцию) А так как в случае отсутствия какой-то сущности монга ее просто создает, то при работе из питончика вы даже не заметите, что коллекцию создали в другой базе, потому что в питончике вы задаете нужные вам базу и коллекцию этой базы и они автоматически создадуться и будут уже шардируемыми (как я понял)

В качестве альтернативы можно использовать вот такую команду:
docker exec -it mongos1 bash -c 'mongosh < /scripts/setup-collections.js'
где в /scripts/setup-collections.js можно задать контекст базы данных и уже для нее создать коллекцию

ждать исправлений тут

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.