Melodeiro
Nikita
@melodeiro
Можно, но почему оно не возвращает там?
Melodeiro
Melodeiro
Вообще либа довольно странная, чего стоит setValue и SetTo (хотя может пока чего-то не понимаю)
Artem
нужен схематичный пример, а то не ясно какая структура
{
'list': [
{
'id': 1,
'table': 123
},
{
'id': 2,
'table': 123
}
]
}
Нужно обновить поле table. При этом, порядкового номера словаря в листе я не знаю, но знаю айди словарей.
Nick
Vladimir
Всем привет!
Есть переменная массив ObjectId. Мне нужно по этим ObjectId найти в другой коллекции документы.
Пробую вот такой конструкцией:
db.getCollection("users").find({_id : { $in : some_array}});
Ошибку не выдаёт, но и результатов нет. Если взять ObjectId из массива и попробовать найти, то всё норм
Alex
в массиве просто строки?
Vladimir
ObjectID
Vladimir
[
{
"objid" : ObjectId("5e82c049e0d1840016bd5678")
},
Vladimir
Как пример
Vladimir
Если взять это значение и попробовать просто по нему в коллекции поискать, то всё ок
Alex
должен бытть плоский массив
Alex
[
ObjectId("5e82c049e0d1840016bd5678"),
...
]
Vladimir
А можно как-то этот в плоский преобразовать?
Alex
на стороне кода
Vova
В принципе через aggregate можно на стороне сервера, $replaceRoot
Vladimir
Спасибо!
yopp
4.2.5 (Mar 26) ◦ 4.0.17 (Mar 25)
• Плейграунд для запросов
• Документация
• Официальные курсы (Бесплатно)
Stable: 4.2.5 ◦ Bugfix: 4.0.16
Legacy: 3.6.17 (Jan 27)
По вопросам покупки Enterprise лицензии пишите @dd_bb
☠️: 3.4.23 (Jan ‘20), 3.2.21 (Dec ’18), 3.0.15 (May ’17)
Null
Мартовские обновления:
* 4.2.5
* 4.0.17
А ещё появилась предварительная версия документация к версии 4.4, которая выйдет этим летом: https://docs.mongodb.com/master/release-notes/4.4/
Артем
поскажите пож, есть две коллекции users {
_id:5e8b529fd819754631033310
name:"Name"
age:25
email:"test@test.com"
} и
posts {
_id:5e8b5f1519e9c2472ed8c2a2
userID:"5e8b529fd819754631033310"
title:"title"
description:"description"
}
через аггрегацию в Compass пытаюсь через lookup сделать запрос
{
from: 'users',
localField: '_id',
foreignField: 'userID',
as: 'posts'
}
но безрезультатно, спасибо
yopp
убедителсь что у вас в posts значение userID того-же типа что _id в users
Артем
как раз проблема в том xnj users это ObjectId, я уже миллоион статей перерыл про конвертацию или toString, но так и не разобрался
Артем
а в posts userID - string
Артем
был бы благодарен за более подроблное обьяснение) НАскольео я правильно понял, то мне нужно конвернтусь userID в ObjectId, но как мне это сделать? сохранять посты с базу из фронта уже с ObjectId ?
yopp
да, приобразоывать строковое представление в объект типа ObjectId
Артем
Вроде понял куда двигаться, спасибо огромное
Гена
Подскажите пожалуйста, если на сервере плохие диски, и при мизерных нагрузках на запись от монги, можно как-нибудь потюниг монгу чтоб в такой ситуации время ответа так не страдало ?
Georgii
👋
А если collection.copyTo() в 4.2 нет, то как скопировать документы одной коллекции в другую?
https://docs.mongodb.com/manual/reference/method/db.collection.copyTo/
Daniil
Georgii
yopp
NVME копейки стоят
Илья
Гена
yopp
yopp
M2 дисков сейчас как грязи. Pcie слоты наверняка свободны есть. Переходник с m2 на pcie долларов 20 стоит
Гена
Тогда ^
Опять же, это инфра мы с ней не работает. Мы тыкаем инфру
Гена
а так если нет больше вариантов то наши руки чисты
yopp
Даже если бы варианты были, это не имеет смысла
Гена
Ну да...Нагрузка мизерная
60мб запись на диск в сек и почти 100 утилизации
yopp
Просто потому что ёмкости это врядли добавит. Можно поэкспериментировать с zstd или gzip, но это поможет только для данных и не факт что даст результата. Плюс при изменении паттерна нагрузки это никак не спасёт.
Гена
да вот и я так думаю.
Гена
Спасибо за совет))
Гена
yopp
Нет
yopp
Это потеребует перезалить все данные
Гена
оу
Гена
точно нет
yopp
Да, я ещё раз повторю мысль которую я вам уже полгода точно вещаю: диски стоят дешевле вашего рабочего времени
yopp
И простоя
Гена
yopp
Служебную записку напишите
Гена
Уже несколько раз проэскалировано на инфру
но там, извиняюсь, мудаки сидят)
yopp
Сомневаюсь
Гена
но так мы хоть от себя стрелки отвели и пусть клиент с ними воюет
yopp
¯\_(ツ)_/¯
Гена
вот вот))
Гена
вообще хочу сказать огромное спасибо этому коммьюнити за помощь))
Евгений
Добрый день. Кто-то располагает актуальной информацией по сравнению полнотекстового поиска sphinx vs mongo?
Гена
и в частности @dd_bb
yopp
Для простых задач подойдёт, для чего-то серьезного не подойдёт. Их нет смысла сравнивать, потому что монга это документное хранилище, а сфинкс специализированное поисковое хранилище
Евгений
yopp
Зависит от задачи
Евгений
yopp
Найти слово в тексте и отсортировать по какой-то волшебной метрике хватит. Найти по сочетанию слов, с исключениями, сложной морфологией или сразу на нескольких языках — нет
yopp
Исправления опечаток нет
yopp
Поиска по расстояниям нет
yopp
Ничего нет :) есть поиск слов по их нормальной форме и кале-то совсем дубовое ранжирование
Евгений
Dilame
В монге есть что-то типа CHECK CONSTRAINT?
Anonymous
Ребят, помогите плз запрос написать)
Есьт такая структура:
{
id: 1,
some_field: [
{
date: date,
value: 1
}
]
}
Мне нужно написать код, который будет инкрементить value в зависиомсти от даты
Проблема в том, что этого элемента может не быть, например some_field: [], либо элемент с этой датой может отстуствовать (по сути сделать апсерт)
Но я уже долго сражаюсь и не могу осилить. 🙁
Буду благодарен за помощь!
yopp
yopp
И что делать, если элемента нет?
Anonymous
А какая зависимость от даты?
мне приходит дата и какое-то число, мне нужно найти элемент в этом массиве по дате и инкреметнуть его, если его нет, то вставить
yopp
Для одного документа или для нескольких?
Anonymous
Для одного документа или для нескольких?
для одного
забыл уточнить, что еще айдишка приходит )
то есть сматчить сначала по айдишке, потоом найти в массиве some_field элемент по дате и инкрементнуть value, иначе добавить в some_field эту дату и значение