@MongoDBRussian

Страница 267 из 342
Roman
02.07.2018
10:38:59
>MongoDB превосходно работает в паре с Node.JS (нужно будет доустановить немного NPM-пакетов). А если при этом запускать через systemd — вообще шик. Ну и запускать, естессно, на сервере, зайдя на него через ssh из великолепного GNOME, работающим под божественным Wayland (подойдет любой GTK+-based терминал, например gnome-terminal). Сам сервер лучше держать на Microsoft Azure, а работал бы он на Fedora с патчами от глубоко уважаемой команды Grsecurity. А исходники держать на GitHub, и править их из-под Microsoft Visual Studio Code или вообще средствами самого гитхаба через превосходный Google Chrome.

Roman
02.07.2018
10:40:10
это откуда такой опус?
http://www.opennet.ru/openforum/vsluhforumID3/114724.html#10

User ?
02.07.2018
10:42:30
Спасибо, буду проникаться мудростью

Google
invzbl3
02.07.2018
18:01:35
ребят, как избавиться от предупреждения " WARNING: The file system cache of this machine is configured to be greater than 40% of the total memory. This can lead to increased memory pressure and poor performance."?

на стеке внятных решений не нашел

Ivanov
02.07.2018
19:05:45
Привет, подскажите

Есть таблица A { id: 1 } { id: 2 } { id: 3 } Есть B { userId: a, id: 1 } { userId: a, id: 2 } { userId: b, id: 3 }

Как зная userId = a, найти все записи из таблицы A?

Nikolay
02.07.2018
19:35:17
MongoError: Updating the path 'data.__scenes' would create a conflict at 'data.__scenes' Объясните пожалуйста логику возникновения этой ошибки. Не получается нагуглить ?

Nick
02.07.2018
20:01:28
Как зная userId = a, найти все записи из таблицы A?
для начала в монге не таблицы а коллекции, ваша задача решается двумя способами. 1) в два запроса, сначала ищете что нужно в коллекции b потом по результату то что нужно в а обычными файндами. 2) используете aggregation с lookup. Если первый способ не нравится двумя запросами, то ищите умеет ли ваш драйвер/одм в populate

Nikolay
02.07.2018
20:03:55
случаем не меняли тип у поля?
нет, запрос так выглядит



Nick
02.07.2018
20:04:56
а погуглить точно не поулчилось? вторая строка в гугле выдает стеоверфлоу с ответом

https://stackoverflow.com/questions/50947772/updating-the-path-x-would-create-a-conflict-at-x

Google
Nick
02.07.2018
20:06:48
т.е. вас не смущает что нужно смотреть что вы одновременно set и unset одно и тоже поле?

Nikolay
02.07.2018
20:06:51
мб $set и $unset

Артем
03.07.2018
00:42:09
Ребята, а почему монго шустрее работает, чем оракле или мсскл?

M
03.07.2018
05:38:14
Yaroslav
03.07.2018
05:38:32
Здесь свои минусы и плюсы

Nick
03.07.2018
05:47:26
да, все оказалось проще, спасибо
понятие "шустрее" нужно явно указывать на каких данных, структуру, объем и что вы с ними делаете. нельзя категорично говорить о производительности транзакций, когда они в монге только появились а в оракле бысле скорее всег ос момента ее создания и закладывались в архитектуру

Vasiliy
03.07.2018
09:19:22
ребят всем привет, я с монгой начинаю только

подскажите пожалуйста, вот у меня есть вывод dbStats "collections"=>2, "views"=>0, "objects"=>194511, "avgObjSize"=>6449.36419020004, "dataSize"=>1254472278.0, "storageSize"=>412340224.0, "numExtents"=>0, "indexes"=>3, "indexSize"=>4231168.0, "fsUsedSize"=>63822999552.0, "fsTotalSize"=>498241871872.0, "ok"=>1.0 как из этого понять сколько бд на диске занимает?

Phoenix»
03.07.2018
11:10:20
Последняя строка( в байтах?)

Vasiliy
03.07.2018
11:13:42
Да

Спасибо

M
03.07.2018
13:25:55
ребят а не подскажите почему такая ошибка возникла error: { "name": "MongoError", "message": "seed list contains no mongos proxies, replicaset connections requires the parameter replicaSet to be supplied in the URI or options object, mongodb://server:port/db?replicaSet=name" }

однин сервер выключали в реплике

на сутки

mongodb://10.132.2.71:27017,10.132.2.72:27017,10.132.2.73:27017/prod?replicaSet=rs0 вот такое URL используется

User ?
03.07.2018
14:27:36
Подскажите, можно ли сделать такой запрос, который будет возвращать радномные N значений по определенному фильтру? bson.M{ "geopoint": bson.M{ "$sample": bson.M{"$near": bson.M{ "$geometry": q, "$maxDistance": 10, }, }, }, }).Limit(6) У меня есть запрос поиска ближайших обьектов и результатов может быть больше 6, я бы хотел чтобы они выдавались рандомно

Alexey
03.07.2018
14:37:14
Подскажите, можно ли сделать такой запрос, который будет возвращать радномные N значений по определенному фильтру? bson.M{ "geopoint": bson.M{ "$sample": bson.M{"$near": bson.M{ "$geometry": q, "$maxDistance": 10, }, }, }, }).Limit(6) У меня есть запрос поиска ближайших обьектов и результатов может быть больше 6, я бы хотел чтобы они выдавались рандомно
могу подсказать только "псевдо рандомно" 1. считаешь общее кол-во объектов в коллекции (или своей выборке) 2. определешь разницу (diff) между общий и необходимым тебе 3. если разница >0 делаешь skip рандомного количества от (diff) 4. limit если нужно

Google
Alexey
03.07.2018
14:37:42
т.е. получится рандомный skip, а так чтобы совсем рандомно (за 1 запрос) я в свое время не нашел

Alexey
03.07.2018
14:54:53
правда выглядеть будет страшноватенько
@Override public List findRandom(int size) { Criteria status = Criteria.where("status").is(CommonStatus.ACTIVE); long count = mongoTemplate.count(new Query(status), Clazz.class); int diff = (int) count - size; Query selectQuery = new Query(status); selectQuery.skip(diff > 0 ? new Random().nextInt(diff) : 0); selectQuery.limit(size); return mongoTemplate.find(selectQuery, Clazz.class); }

у меня на жабе так

Aydar
03.07.2018
15:04:02
skip же плох, если нужно много скипнуть, разве нет?

Nick
03.07.2018
17:05:29
Я бы предпочел выяснить конкретно задачу, а то может есть спомоб получше рендома

есть аналоги?
Нет аналогов, т.к. Скип это вычитка и пропуск доков из курсора. Максимум индексы для ускорения

Pavel
03.07.2018
18:12:43
Привет, можно ли как то фильтровать по json полю, есть сам json лежит строкой в базе

Nick
03.07.2018
18:14:00
Регуляркамт

invzbl3
03.07.2018
18:37:49
ребят, пишу запрос на соотвествие символа М: db.zips.aggregate( { $project :{digits : {$substr : [ "$city", 0, 1] }, pop : 1, city : "$city", zip : "$_id", state : 1}},{ $match :{ digits : /\M/ } },{ $group :{_id : null, pop : { $sum : "$pop"}}}), получаю ответ, все нормально: { "_id" : null, "pop" : 19499064 } а как с несколькими символами реализовать? пишу, к примеру, такой вариант: db.zips.aggregate( { $project :{digits : {$substr : [ "$city", 0, 1] }, pop : 1, city : "$city", zip : "$_id", state : 1}},{ $match :{ digits : /\M/, /\B/, /\D/, /\O/,/\G/,/\N/ } },{ $group :{_id : null, pop : { $sum : "$pop"}}}), но получаю ошибку 2018-07-03T20:47:07.273+0300 E QUERY [thread1] SyntaxError: invalid property id @(shell):1:151

M
03.07.2018
23:39:01
Ребят так подскажите как правильно соединяется с mongo раньше можно было указывать все сервера а теперь максимум один в URL?

Oleg
04.07.2018
05:20:19
Users.findOneAndUpdate( {user_id: 123}, {last_activity_at: new Date(), is_blocked: false, ...ctx.from}, {upsert: true, new: true} ) Как мне узнать, что был создан новый элемент в коллекции, а не возвращен уже существующий? Нужно поставить метку is_new_user: true. Судя по всему, нужно делать дополнительный запрос выше. Другого варианта нет.

Nick
04.07.2018
09:10:33
а можете сказать какую задачу пытаетесь решить?

Oleg
04.07.2018
09:12:56
а можете сказать какую задачу пытаетесь решить?
Запись в базу юзера. Если нет – записываем, если есть – обновляем. Но нужно в mixpanel.com отправлять инфу о новом юзере.

Nick
04.07.2018
09:14:44
а юзеры у вас что не регистрируются?

Google
Oleg
04.07.2018
09:15:20
а юзеры у вас что не регистрируются?
Нет, любое действие - вызов middleware user.

Mikhail
05.07.2018
08:35:26
Помогите составить запрос. Мой псевдокод какой-то такой { a: 13, b: bArray.length ? { $in: bArray } : undefined } Но если по undefined то тогда не находит совпадений

Анатолий
05.07.2018
09:00:26
'' пробовал?

https://docs.mongodb.com/manual/tutorial/query-for-null-fields/

Vladislav
05.07.2018
10:27:54
Друья, кто пользовал $lookup из Mongoose, Mongo ? У объекта пользователя есть массив с ObjectId его детей. Этот массив нужно поменять на массив с объектами детей прямо во время aggregation query , т.е. с помощью оператора $lookup. https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/index.html Кто-то может подсказать, как это можно реализовать в коде ? Спасибо.

Vladislav
05.07.2018
10:31:54
$unwind - $lookup - group $push
спасибо, а без $unwind как-то можно ? Мне желательно созранить исходное число пользователей, и не увеличивать их число

(что nwind и делает)

Ruslan
05.07.2018
10:32:27
у пользователя есть идентификатор?

Yurii
05.07.2018
10:32:34
(что nwind и делает)
для этого и последний $group, по-другому не получиться

Vladislav
05.07.2018
10:32:54
ни разу им не пользовался )

Ruslan
05.07.2018
10:35:56
смотри, есть {_id: 1, a: [1, 2], b: 3}, {$unwind: a} сделает тебе {_id: 1, a: 1, b: 3} и {_id: 1, a: 2, b: 3}, потом делаешь lookup, а потом группируешь по id: {$group: {_id: $_id, a: {$push: $a}, b: {$first: $b}}}, как-то так, но это не точно

Ruslan
05.07.2018
10:41:51
Vladislav
05.07.2018
10:56:34
Обновил пример
спасибо большое

Друзья, а еще вопросик. Почему такая очередь не работает: const getChildAgeFactor = { childAgeFactor: { $map: { input : user.profile.children, as : 'userChild', in : { $map: { input : '$profile.children', as : 'targetChild', in : '$$userChild._id' } }, } } }; И чем ее можно заменить ? ('$$targetChild._id' возвращает нормально, а вот '$$userChild._id' - нет, вместо него возвращает null)

Так тоже не выходит: const getChildAgeFactor = { childAgeFactor: { $map: { input : user.profile.children, as : 'userChild', in : { $let: { vars : { 'child1': '$$userChild' }, in : { $map: { input : '$profile.children', as : 'targetChild', in : '$$child1._id', } } } }, } } };

M
05.07.2018
13:21:40
Ребят помогите используем официальный драйвер mongodb для nodejs и после обновления версии он ругается что uri стал не правильный ? ктото может сталкунлся тоже с этим ?

Google
M
05.07.2018
13:30:20
Так исправьте uri
почему ? если он по документации и там вот такая ошибка seed list contains no mongos proxies, replicaset connections requires the parameter replicaSet to be supplied in the URI or options а вот наш uri mongodb://10.132.2.71:27017,10.132.2.72:27017/devdb?replicaSet=rs0

Mikhail
05.07.2018
18:03:03
Анатолий
05.07.2018
19:02:57
Спасибо, не знал
google в помощь

yopp
05.07.2018
21:48:47
google в помощь
В нашей группе не принято предлагать гуглить.

Анатолий
05.07.2018
21:51:24
В нашей группе не принято предлагать гуглить.
Эм. ок. Сорри. Просто это была первая ссылка которую я нашел по запросу mongodb null query

Yaroslav
05.07.2018
22:11:47
почему ? если он по документации и там вот такая ошибка seed list contains no mongos proxies, replicaset connections requires the parameter replicaSet to be supplied in the URI or options а вот наш uri mongodb://10.132.2.71:27017,10.132.2.72:27017/devdb?replicaSet=rs0
попробуйте перенести использование replicaset в опции коннекта монго клиента, а подключение к конкретной БД также вынести из строки соединения. примерно так: const client = await MongoClient.connect('mongodb://10.132.2.71:27017,10.132.2.72:27017', { { useNewUrlParser: true, replicaSet: 'rs0' } }); const devdb = client.db('devdb'); гарантировать не могу, но должно сработать

Dmitry
06.07.2018
22:34:01
А нам прикиньте после победы в конкурсе на лучшее новое приложение написали с программы newswatchtv что по amc показывают, типа хотим вас в передачу включить, сегодня общались с контент менеджером рассказывали подробнее о приложении, оказалось что вот такие расценки?

Страница 267 из 342