Size: a a a

2020 January 10

S

Stanislav in SPb Python
Serge Matveenko
import os

import bson
import pymongo

test_client = pymongo.MongoClient(host=os.getenv('MONGODB_HOST'))
test_db = test_client.get_database(name='test')
my_col = test_db.get_collection('my')
my_col.drop()

my_col.insert_one({'foo': 1})

print(list(my_col.find()))

id_value = '5e17a81897e04c0781596e0d'

my_col.insert_one({'_id': bson.ObjectId(id_value), 'foo': 2})

print(list(my_col.find()))

print(my_col.find_one(bson.ObjectId(id_value)))
print(my_col.find_one(id_value))

my_col.insert_one({'_id': id_value, 'foo': 3})

print(list(my_col.find()))

print(my_col.find_one(bson.ObjectId(id_value)))
print(my_col.find_one(id_value))

да, таки надо явно

app_1      | [{'_id': ObjectId('5e17aaadc02f935d421ae525'), 'foo': 1}]
app_1      | [{'_id': ObjectId('5e17aaadc02f935d421ae525'), 'foo': 1}, {'_id': ObjectId('5e17a81897e04c0781596e0d'), 'foo': 2}]
app_1      | {'_id': ObjectId('5e17a81897e04c0781596e0d'), 'foo': 2}
app_1      | None
app_1      | [{'_id': ObjectId('5e17aaadc02f935d421ae525'), 'foo': 1}, {'_id': ObjectId('5e17a81897e04c0781596e0d'), 'foo': 2}, {'_id': '5e17a81897e04c0781596e0d', 'foo': 3}]
app_1      | {'_id': ObjectId('5e17a81897e04c0781596e0d'), 'foo': 2}
app_1      | {'_id': '5e17a81897e04c0781596e0d', 'foo': 3}


и третий документ нам показывает почему так
Мне так неохота было монгу ради этого ставить :-)

Спасибо за эксперимент!
источник

SM

Serge Matveenko in SPb Python
Stanislav
Мне так неохота было монгу ради этого ставить :-)

Спасибо за эксперимент!
я ничего не ставил:)
version: "3.7"
services:
 app:
   build: .
   environment:
     MONGODB_HOST: mongodb
   volumes:
     - ".:/usr/src/app"
   depends_on:
     - mongodb
 mongodb:
   image: mongo:latest
   volumes:
     - "mongodata:/data/db"
volumes:
 mongodata: null
источник

SM

Serge Matveenko in SPb Python
Serge Matveenko
я ничего не ставил:)
version: "3.7"
services:
 app:
   build: .
   environment:
     MONGODB_HOST: mongodb
   volumes:
     - ".:/usr/src/app"
   depends_on:
     - mongodb
 mongodb:
   image: mongo:latest
   volumes:
     - "mongodata:/data/db"
volumes:
 mongodata: null
FROM python:3.8

WORKDIR /usr/src/app

RUN pip install pipenv

COPY ./Pipfile ./Pipfile.lock ./
RUN pipenv install --deploy --dev

CMD ["pipenv", "run", "python", "test.py"]
источник