Dmitry
это я вчера пытался сделать newRoot
Dmitry
и ругается что получил строку...
Dmitry
есть какой-то способ результат вычислений перевести в чистый массив?
Dmitry
хотя-бы куда смотреть?
Dmitry
может логика выражения не правильная? И надо было делать вообще не facet'ом?
Nick
собрать все в один массив:
group:{id:null, array:$push:....}
Dmitry
ну я так и сделал
`{
"$group": {
"_id":nil,
"array":{
"$push": "$data.self_customer_status_id"
}
}
}`
Dmitry
результат не очень...
Nick
```
CustomerStatus.collection.aggregate([
{
'$sort': {'self_customer_status_created_at': 1}
},
{'$match':
{
'self_customer_status_created_at':
{
"$gte": Time.parse('2017-01-17').beginning_of_month,
"$lte": Time.parse('2017-01-17').end_of_month
}
}
},
{
"$facet": {
"guests":
[
{
"$group": {
"_id": "$_id",
"data": {
'$first': '$$ROOT'
}
}
},
{
"$match": {
"data.status": "guest"
}
}, {
"$group": {
"_id":nil,
"array":{
"$push": "$data.self_customer_status_id"
}
}
},
{
"$project":{
"array": 1,
"_id":0
}
}
], "members":
[
{
"$group": {
"_id": "$_id", "data": {
'$last': '$$ROOT'
}
}
},
{
"$match": {
"data.status": "member",
"data.self_customer_status_id": {
"$in": [
"$guests.array",
]
}
}
}
]
}
}, {
"$project":
{
"members": 1,
"guests.array": 1
}
}
]
).as_json
```
https://play.db-ai.co/
закиньте сюда примеры исходных данных
Nick
и нужен пример того что должно получиться
Nick
а блин
Nick
у вас там facet
Nick
это значит что members не видит результатов guests
Nick
поэтому и обратиться к массиву вы не сможете
Dmitry
Блииин, спасибо огромное!!!
Dmitry
сделаю вторым условием! Спасибо!)
yopp
Нет
Max
привет! нужно проапдейтить Storage на сервере (атлас) с 15 гигов до 30 . Подскажите, в период апдейта, будет ли доступен кластер? могут ли быть проблемы
yopp
Max
Bekzhan
всем привет, как создать поля для юзера в компасе?
у меня есть база данных, но она пустая, есть ли туториалы, помогите плиз
Dima
через консоль проще будет пару комманд и все
https://docs.mongodb.com/manual/reference/method/db.createUser/
Bekzhan
спасиьо
Artem
смотрите есть сортировка по полям created_at: -1, updated_at: -1, _id: -1 можно ли както организовать search after разбивку на страницы по несскольктм полям сортировки?
Artem
или только можно реализовать search_after по _id ?
yopp
Artem
а что вы под «search after» разбивкой подразумеваете?
Вот к примеру там Approach 2: Using _id and limit вариант разбивки на страницы https://www.codementor.io/arpitbhayani/fast-and-efficient-pagination-in-mongodb-9095flbqr
но проблема в том что возникает необходимость сортировать по нескольким полям, и search after должен производиться относительно нескольких полей.
К примеру в ElasticSearch данный механизм разбивки на страницы есть базовым на больших объёмах данных и там есть возможность отталкываться от нескольки полей сортировки. Но как такое же реализовать на mongodb, и возможно ли это?
yopp
yopp
но вы можете использовать как маркер условие $gte/$lte по created_at: , updated_at: , _id: . т.е. задача состоит в том, чтоб отсечь часть выборки
yopp
вероятно у вас там индекс по created_at,updated_at, да?
yopp
вообще, какой объём данных, что вам так необходимо делать маркер?
Artem
Объём предположительно большой будет, все будет шардироваться и реплецироваться, пока там данных мало в реалие, но это временно.
И $gte/$lte не сработает если выборка будет лимитирована через limit и будут существовать не уникальные даты обновления и создания + ессли _id не будет соответсвовать данным датам
yopp
вот когда у вас будут данные, тогда и будете разбираться
yopp
сейчас это охота на мух
yopp
вы не знаете где у вас проблема и не знаете под какой кейс оптимизировать
yopp
более того, если вы хотите шардировать это вообще соверешнно другая история
yopp
CrusaderX
Так сделай полл ) Я бы сходил на онлайн-трансляцию
Alexeyhh
👋 Привет всем, сталкивался ли кто с очень долгой задержкой при подключении к mongodb Atlas и невозможностью записать данные туда? При записи иногда вылезает connection timeout
Никита
Никита
Может проблема не у атласа, а у сети?
Alexeyhh
А как именно сеть проверить?
Alexeyhh
Я уже что только не делал, без понятия что не так, если честно.
Alexeyhh
Alexeyhh
AstraSerg
https://sysnetdevops.com/2017/04/24/exploring-the-powershell-alternative-to-netstat/ Оно?
Alexeyhh
В самой документации есть вот такое. У меня эти порты не заблокированы и не заняты
Alexander
А можно ли через mongoose найти вхождения по формуле? В доках этого вроде нет. Есть сравнение больше или меньше, но хотелось бы иметь возможность провести несложные операции вычитания/сравнения над значением, и если всё сходится, только тогда вернуть значение.
yopp
Alexeyhh
Alexeyhh
В гугле ошибка не ищется
yopp
У вас проблемы с DNS
Alexeyhh
Да, я понимаю, но что делать я без понятия
yopp
посмотрите какой dns сервер у вас используется и попробуйте поменять его на публичный, например гугл (8.8.8.8/8.8.2.2) или coudlflare (1.0.0.1/1.1.1.1)
Alexeyhh
Да, наконец-то, спасибо вам огромное, там вместо dns вообще непонятно что было, как так вышло без понятия.
yopp
вероятно у вашего провайдера сломался dns ¯\_(ツ)_/¯
Alexeyhh
Скорее всего =) Стоял в автоматическом режиме
Dmitry
Подскажите пожалуйста, countDocuments всегда должен идти отдельным запросом или можно как-то и курсор получить и общее количество документов?
Dmitry
к примеру у меня есть запрос который возвращает курсор на 1000 документов, хотелось бы одновременно получить и само количество этих документов без лишнего запроса. Это возможно?
AstraSerg
cursor.size() cursor.count() должно помочь
yopp
Dmitry
yopp
cursor.size() cursor.count() должно помочь
Нет, count в mongo-she’ll преобразует это в count query https://github.com/mongodb/mongo/blob/f740b0abe67453ca069555af7eea76f063ba90a9/src/mongo/shell/query.js#L338
yopp
А size это шорткат к count https://github.com/mongodb/mongo/blob/f740b0abe67453ca069555af7eea76f063ba90a9/src/mongo/shell/query.js#L380
Dmitry
В общем примерно понятно...
yopp
А зачем нужен count? Пагинация?
Dmitry
yopp
А сколько документов?
Dmitry
Пока очень мало, но планируется под миллион и будет расти
yopp
Миллион всего или миллион в выборке?
yopp
Там условие есть?
Dmitry
Миллион в выборке
yopp
А всего сколько документов?
Dmitry
Выборка - все документы из коллекции
yopp
С сортировкой?
Dmitry
Да, по дате