yopp
objectid не строка
Viktar
Я счас экспортом в файл. А там грепом.
yopp
не помню, надо ли явно к objectid приводить
yopp
помоему нет
Nick
надо кастовать
Nick
и там где $lte замените на $lt , а то нижний край захватываете
yopp
yopp
> db.foo.find({$or: [{_id: {$gt: ObjectId('5ee000000000000000000000')}}, {_id: {$lte: ObjectId('5ed000000000000000000000')}}]} )
{ "_id" : ObjectId("500212fc8628ea3f9afbfb76") }
{ "_id" : ObjectId("600212fc8628ea3f9afbfb76") }
yopp
> db.foo.find()
{ "_id" : ObjectId("5ed212fc8628ea3f9afbfb76") }
{ "_id" : ObjectId("500212fc8628ea3f9afbfb76") }
{ "_id" : ObjectId("600212fc8628ea3f9afbfb76") }
Viktar
Да. с кастованными значениями хорошо работает. $ne - раскладывает на больше меньше - сахарок
yopp
только там наоборот: $lt и $gte
yopp
$ne?
Viktar
https://docs.mongodb.com/manual/reference/operator/query/ne/
yopp
я к тому что где раскладывает
yopp
не оч понял
yopp
инвертировать условие в смысле? $ne (> 5ed, < 5ee)?
Viktar
в плане запроса. $ne разложилось на больше и меньше
yopp
всё равно не понял :)
yopp
$ne с чем? :)
yopp
не могу придумать запрос с $ne который бы позволил отсечь префикс oid, если это не инверсия $lt, $gte
Viktar
))) find({field:{$ne:5}}) превратилось в меньше 5 и больше 5
Viktar
ну в префиксе не сработает конечно, вариативная состояние.
yopp
но ведь «не начинается» это не $ne, там же целый диапазон
yopp
оч конечно не хватает сравнений по битовой маске)
Viktar
у меня кстати экспорт в файл и греп быстрее сработал чем больше меньше в монге)
yopp
неудивительно :)
Viktar
cat phone_id.csv|grep -v 5ed 1234.txt
yopp
yopp
export в пайп и потом греп
yopp
так честнее будет
yopp
плюс наверняка у вас уже csv в дисковом кеше лежит
Viktar
я общее посчитал) экспорт с грепом отработали за 25 мин. а экспорт запроса за 37 мин
Viktar
300 млн записей
yopp
эээ. но ведь 37 минут не прошло ещё!
Viktar
я на семпле пробую, а потом умножаю на коэфицент)
Viktar
у меня есть семпл на 1 млн записей. а потом умножаю на 302,6
yopp
а что в executionStats?
yopp
так-то оно делает ixs + fetch по вполне понятным баундам
Nick
Nick
короч неочень условие для фильтрации
Nick
для понимания скажите 1кк записей сколько места занимают и сколько 300кк?
Viktar
В обоях случаях погрешности приемлемы
Nick
если это осознанно, то хорошо
Viktar
вот у меня есть проблемка. Монга съедает всю память на ервере при поиске по гео индексу. не могу её никак победить. на сервере 62 гига памяти и всю кушает. хотя в настройках кеш только 16Гб
Viktar
поиск в колекции на 200 млн записей. расмер одной записи около 800кб
Відьма🐝👈
Здравствуйте!
Можете подсказать куда сохраняется файл с базой данных, если я создаю его таким способом:
import pymongo
from pymongo import MongoClient
conn = MongoClient("mongodb://localhost:27017/")
db = conn.mydb
collection = db.mycoll
Melonges
где можно найти Public API Key and Private API Key for your Atlas deploymen?
Nekot
Привет всем. Такой вопрос, можно как-нибудь в pipeline агрегации сделать чтобы одна запись сразу в несколько групп попадала? Например, у меня есть лог, хочется выплевывать что-то вроде [{'date': '1-1-1', 'type': 'all': 3}, {'date': '1-1-1', 'type': 'POST': 2}, {'date': '1-1-1', 'type': 'GET': 1}]
yopp
Відьма🐝👈
yopp
nefertisu
nefertisu
nefertisu
Artem
ожидал
ну это же классика, прикинься девушкой, чтоб быстрее ответили. кто знает
Anatoliy
Всем привет!
Пытаюсь выяснить с каким writeConcern выполняются запросы.
Шард кластер.
На роутере (mongos) запускаю команду db.currentOp()
Но, только для части клиентских запросов есть поле command.writeConcern.
Это поле появляется при явной настройке writeConcern в приложении.
В моем случае появляется запись { "w" : "majority" }
Какой writeConcern используется для остальных запросов?
Viktar
Viktar
если не устанавливаете сами, посмотрите дефолтное значение для драйвера.
Viktar
но я не ручаюсь за достоверность(читал мельком), было бы здорово, если бы кто то подтвердил или опровергнул
Viktar
https://docs.mongodb.com/manual/reference/write-concern/
Anatoliy
Чуть больше поисследовал.
Отображается отличие от дефолтных значений.
А сами значения описаны тут https://docs.mongodb.com/manual/reference/mongodb-defaults/#default-write-concern
Anatoliy
С версии 4.4 можно на ходу менять эти значения
https://docs.mongodb.com/manual/reference/command/setDefaultRWConcern/
Lev
Предположим, у меня программа для снятия показаний со счетчиков. Каждый раз, когда приходит сообщение от счетчика - я кладу показания в базу (id счетчика, показания и дата)
И в какой то момент, мне надо получить последние показания у определенного множества счетчиков (список id)
Сейчас я это делаю по одному запросу а ля findFirstByIdOrderByDateDesc
А как сделать такое же только одним запросом?
yopp
yopp
самый простой вариант записывать последнее показание в документ с самим счётчиком
yopp
ну или как вы сейчас делаете
Viktar
yopp
можно ещё $lookup сделать
Вася
всем привет, подскажите какую структуру делать если у меня предполагается всего один документ для коллекции. данные это константы которые используются для инициализации. и меняться будут только по моему запросу раз в год.
yopp
Наверное самый простой вариант хранить каждую константу как отдельный атрибут
Вася
yopp
Один документ, в нём на каждую константу по атрибуту
{a: 1, b:2, c:3 ...}
Вася
понял. ну по другому я и не вижу. вот решил у экспертов спросить кто как делает.