Nick
Nick
Ощущение что вы сделали три матч стейджа, вместо одного
Дара
Nick
Весь получившийся пайп для агрегации
Nick
Nick
имею ввиду на чем текст что выше
Дара
Дара
Nick
в этом и рпоблема, что 3 матча. Упакуйте в один с использованием $and
Nick
и тогда индекс начнет нормально работать
Дара
Nick
но сразу скажу, что если под выборку попадает много доков, то магии не случится
Nick
с диска всеравно их читать придется
Nick
кстати не знаю как там в C#, но стоит проверить что count выглядит как добавление соответствующего стейджа $count
Дара
Дара
Nick
и проджект надо поставить после матчей
Дара
Дара
Bogdan
Анатолий
Дара
Анатолий
Pan
как я могу взять первый элемент поля loc? чтобы проверить больше ли оно указанного значения?
Pan
ок,
db.zips.find({ loc: [ { $elemeMatch: { $gt: 50 }} ] }) - выберет все документы, в которых один из элементов loc больше 50, а как проверять именно первый?
Анатолий
Анатолий
на сайте монги очень хороший мануал
Pan
Andrey
Andrey
Pan
шо ж поделать
Orange
有人可以教俄语么?
04MTTM07
Orange
что вы сказали?
04MTTM07
Да.
Orange
Я тоже использую программы для перевода!
Orange
Есть ли способ выучить русский язык?
04MTTM07
В сообществе "mongodb russia"?
Тут можно про монгодб спросить :)
Есть множество разных тематических чатов, если хочешь пообщаться с русскоговорящим сообществом.
Dima
Всем привет. Столкнулись со странной проблемой. Есть один документ со вложенным в него другим документом. При добавлении поля во вложенный и копировании всего документа иногда исчезает одно поле во вложенном. Уже 3 дня пофиксить пытаемся. Есть идеи, из-за чего это может происходить?
Анатолий
из-за того что вы перезаписываете вложеный документ
Dima
да не. как раз-таки происходит именно обновление, а не перезапись
04MTTM07
При добавлении поля во вложенный док не меняется id главного дока?
Dima
не должен
Dima
используется метод findByIdAndUpdate()
Анатолий
Покажите как именно делаете апдейт
Dima
public async disableCameraById(cameraId: string, user: IUserDocument | null = null): Promise<ICameraDocument | null> {
const camera = await this.cameraDatabaseService.getObjectById(cameraId);
if (!camera || !camera.session) {
return camera;
}
camera.session.actions.finish = {
user: user,
time: Date.now(),
};
await this.historyDatabaseService.addObject({ reportId: null, camera: camera });
camera.session = null;
for (const channel of camera.channels) {
channel.preset = null;
}
const updatedCamera = await this.cameraDatabaseService.editObjectById(cameraId, camera);
return updatedCamera;
}
Nick
и какое поле ломается?
Nick
и что делается внутри editObjectById
Анатолий
То которое не учавствует в апдейте, вангую
Анатолий
Dima
Dima
самое первое
Dima
session создаётся во время работы программы
Dima
в ней хранится 2 поля
Dima
в некоторые, нам неизвестные, моменты. пр добавлении второго поля, первое, как будто, затирается последним
Dima
Анатолий
Тоесть вы достаете обьект камера, в нем есть поле сессия, которое вы изменяете, а после сохранения поля сессия вообще нет?
Dima
Dima
Анатолий
Вопрос не совсем ваш, но суть апдейта покажет наглядно
Дара
У меня вопрос. Если в запроса два $match, то index будет рабоать два раза для каждого $match?
Nick
скорее всего только на первом
Nick
чтобы точнее узнать надо эксплейном пройтись
Анатолий
да, на первом, второй уже банально по массиву будет идти
Dee
Всем привет!
Пытаюсь выполнить кастомный search, игнорирую null переменные. Чтобы по ним поиск не происходил, есть запрос:
$and:
[
{$or : [ { $where: '?0 == null' } , { a : ?0 }]},
{$or : [ { $where: '?1 == null' } , { b : ?1 }]},
{$or : [ { $where: '?2 == null' } , { c : ?2 }]}
]
во-первых, он корректный?
Во-вторых, насколько это производтельно правильно. Я прочитал, что where будет выполнять условие для каждого документа. А я бы хотел, чтобы поиск шел только для тех, где значения динамические != null
и поиск был только по ним, а не по каждлому документу, выполняя where
Dee
?0 ?1 ?2 == someField1 someField2 someField3 которые динаически задаются и могут быть == null
Nick
Всем привет!
Пытаюсь выполнить кастомный search, игнорирую null переменные. Чтобы по ним поиск не происходил, есть запрос:
$and:
[
{$or : [ { $where: '?0 == null' } , { a : ?0 }]},
{$or : [ { $where: '?1 == null' } , { b : ?1 }]},
{$or : [ { $where: '?2 == null' } , { c : ?2 }]}
]
во-первых, он корректный?
Во-вторых, насколько это производтельно правильно. Я прочитал, что where будет выполнять условие для каждого документа. А я бы хотел, чтобы поиск шел только для тех, где значения динамические != null
и поиск был только по ним, а не по каждлому документу, выполняя where
сразу отказывайтесь от динамики
Nick
и тем более от where
Nick
тогда будет долго и медленно