Bro
https://www.codementor.io/@arpitbhayani/fast-and-efficient-pagination-in-mongodb-9095flbqr
Bro
те ты такие можешь юзать структуры
Bro
db.students.find({'_id': {'$gt': last_id}}).limit(10)
Bro
вместо скипов
no
no
Спасибо
Denis
Ага тока по перфомансу это то же самое что skip limit с сортировкой по _id, не считая стремного апи для фронтенда
Евгений [ : Kyber : ]
Всем привет!
Есть в модели
uid: {
type: String,
default: "",
unique: true,
},
он должен быть уникален, но в тоже время не у каждого он будет и он не обязателен. Подскажите, как сделать что бы не ругалось и было правильно для такой ситуации
Nick
Евгений [ : Kyber : ]
Arystan
всем привет. хотел посоветоваться. есть таблица где хранятся отзывы юзеров о заведениях. и вот вопрос как можно сделать агрегацию, чтобы можно было на каждый филиал список юзеров, которые оставили там отзыв? и желательно чтобы максимум 4 юзера брал
Arystan
или как лучше записывать такую таблицу?
Bro
Bro
skip сканирует коллекцию
Bro
The cursor.skip() method requires the server to scan from the beginning of the input results set before beginning to return results.
Denis
нет
Индексы, не не слышал
Bro
доки не не читал
Denis
Bro
https://docs.mongodb.com/manual/reference/method/cursor.skip/
Bro
тут все написано
Bro
Using Range Queries
Bro
Range queries can use indexes to avoid scanning unwanted documents, typically yielding better performance as the offset grows compared to using cursor.skip() for pagination.
Denis
тоже самое без sort по _id, колскан
Denis
Bro
@dd_bb skip() или range query для пагинации на больших коллекциях?
Гена
Всем привет
Подскажите, если у нас в реплика сете слейвы по мощностям сервера чуть слабее праймари ноды, это может повлиять на перфоманс?
Гена
При условии что все запросы идут в праймари
Daniil
Daniil
где то просто не подойдет один из вариантов
Bro
ну если коллекция небольшая
Bro
то и скип пойдет
Bro
хз может сейчас что-то нахимичили (хотя в доках все то же) но раньше если дофига скипов это было медленно дико
Aziz
Здравствуйте всем. Кто поможет с запросом?
Есть таблица с документами:
[{id:1,sum:2},{id:2,sum:3},{id:3,sum:5},{id:4,sum:2},...]
Как получить первые N документов где сумма их sum >=7 ?
Alexander
Golang + MongoDB official driver. Как мне вставить кастомный айдишник? Кто знает? Гугление ни к чему ни привело
Roman
Alexander
Roman
Переведите string в primitive.ObjectID
Alexander
ему нужен primitive.ObjectId
Alexander
не переводится
Alexander
тем более primitive.ObjectId — это алиас [12]byte
Roman
А вы хотите, чтобы в базе лежало _id: string вместо _id: ObjectID ?
Alexander
ну вообще нужен кастомный стринг в представлении ObjectID
Roman
ObjectId - это байты, так что только если string будет правильной длины и содержать в себе символы a-f0-9, то можно перевести
Alexander
ну вообще можно и просто string вместо ObjectID, если так возможно
Alexander
Alexander
и как мне сделать string?
Alexander
а ему нужен обязательно primitive.ObjectId
Vladimir
blabla.toString() ?
Vladimir
а, пропустил, что это гошечка =(
Alexander
а мне нужна кастомная строка
Alexander
различной длины
Roman
Я не знаю, хорошее ли решение, использовать как _id кастомную строку.
Всегда можно добавить два поля _id: ObjectId, my_id: string
Alexander
все-таки, тогда создам два поля
Aziz
[{id:1,sum:2},{id:2,sum:3},{id:3,sum:5},{id:4,sum:2},...]
Как получить первые N документов где сумма их sum >=7 ?
Помогите пожалуйста)
Valera
Valera
Aziz
Надо сумма чтобы была >=7)
Valera
Насчет количества элементов - limit(10)
Valera
>=7 то же самое что и >6
Valera
или там не целое?
Aziz
мне нужно чтобы сумма всех полей sum была >6
Valera
теперь понял)
Aziz
то есть чтобы выбирались поля
{id:1,sum:2},{id:2,sum:3},{id:3,sum:5}
Aziz
10>6
Roman
Не уверен, что можно это сделать запросом.
Скорее всего это надо делать на уровне приложения
Aziz
ну в node да можно перебором по 10 строк грузить и проверять. Но думал можно элегантнее )
Valera
а какая цель вообще? просто как я думаю, можно например отсортировать документы по убыванию и взять столько, чтобы сумма перевалила за 7) либо наоборот, по возрастанию и тоже взять столько, чтобы сумма стала больше 7. тут уж смотря что вам нужно, как можно больше доков или как можно меньше
Aziz
Valera
не за что) надеюсь помог
Semyon
{ NeFFeX }
всем привет, при добавлении айтема, айтем добавляется в конец, нужно чтобы были сверху
{ NeFFeX }
как можно сделать ?
Aziz
{ NeFFeX }
можно на фронте просто reverse, но он мутирует
{ NeFFeX }
думаю в монго есть метод)
Nick
Aziz