Tommy
Артем
https://www.mongodb.com/products/compass
Артем
а что на скрине за прога?
Tommy
прикольно это типа phpmyadmin тока в монге?)
Артем
Наверное) Удобная штука, советую
Roman
да, компас клёвая херня, сразу видно
Roman
он сразу установился когда я решил поставить монгу, вместе с нею
Tommy
чтото не вдупляю как в этом компасе pipeline написать?
Tommy
{
from: 'likes',
let: {
localRecipeId: {
$toString: "$_id"
}
},
pipeline: [
{"$match": {"$expr": {"$eq": ["$$localRecipeId", "$recipeId"]}}},
{$project: {userId: 1}}
],
as: 'likes'
}
Tommy
он мне однуо и тоже предупреждение
Expected "[" or AggregationStage but "{" found.
Dmitry
Tommy
Разные кавычки зачем кавычки match и остальных $.
{
from: "likes",
as: "likes",
pipeline: [
{$match: {$expr: {$eq: ["$$localRecipeId", "$recipeId"]}}},
{$project: {userId: 1}}
],
let: {
localRecipeId: {
$toString: "$_id"
}
}
}
переделал, таже ошибка
Dmitry
С простой команды начинать и усложнять. project userid сделать чтобы понять как он хочет
Tommy
чтото с unwind какаято лажа получается, без него у меня 24 айтема а с а сним почемуто 9 становится, а должно в итоге выдать 24
Tommy
кто может подсказать где косяк?
https://pastebin.com/wqJBLrQm
Alexey
Друзья, всем привет! Постигаю монгу под докером и вот какой момент не могу понять. Монга по умолчанию биндится на локалхост, и чтобы она была доступна с других хостов мы прописываем команду —bind_ip. А как с этим дела обстоят в докере? Там монга по дефолту берет адрес контейнера или существует подобная команда для запуска контейнера с биндингом? Или нужно настраивать сеть докера, которую указываешь при старте контейнера, соответствующим образом? Или вообще контейнер монги не может быть доступен с других хостов? Короче, помогите пжалста :)
Serhio
Alexey
Alexey
Но по адресу хоста, где крутится контейнер
От
Привет
От
Кто нибудь юзел под proxy Mongodb compass
От
?
Nick
Что вы, что предыдущий человек не обозначили проблему
Nick
Вот теперь люди знакомые с монгоэнжином хотя бы смогут чтото прокомментировать
Bibus
Привет. Подскажите, плодить коллекции (даже если у меня уже 20 коллекций) в бд под каждую отдельную сущность (даже если хранить буду всего одну запись в коллекции) это же нормально, да? Это как таблицы в mysql?
CybernatiC
Bibus
Типа да
И хранить один объект в коллекции тоже норм? Хочу например хранить определенные настройки а бд. Создал колецию config и добавил всего один объект
Melbourne Channel
Can mongodb do full text search? Is there an english channel for mongodb?
Anonymous
Кто-нибудь знает, где я могу найти русский номер телефона онлайн? Один из моих разделов Mongod требует этого
Anonymous
Kenan
Nick
Anonymous
ДОБРОЙ НОЧИ
Оцените пожалуйста проект. Кто согласен сотрудничать откликнитесь. Старался всё расписать понятно.
Приму любые советы от профессионалов. Может кто мне подскажет какие-то нюансы, что нужно сделать, чтобы это действительно работало адекватно и нормально. У кого есть опыт в таких проектах с большим объемом данных ?
ТЗ часть 1
https://telegra.ph/Nuzhno-sdelat-servis-po-analitike-v-Telegram-12-08
ТЗ продолжение
https://telegra.ph/PRODOLZHENIE-TZ-12-08
Андрей
Можно как то прочитать названия всех полей в схеме монгус?
Nick
Mike
@yatoba Можно ли сакумулировать несколько значений при агрегации? Что я мею в виду ? Я сейчас делаю несколько агрегаций а хотелось бы одной
Mike
@yatoba const countries = await Item.aggregate([
{ "$match": {'publish': true, 'attribs.name':'--originCountry'} },
{ "$unwind": "$attribs" },
{ "$match": {'attribs.name':'--originCountry'} },
{ "$group": {
"_id": "$attribs.val"
}}
]);
const colors = await Item.aggregate([
{ "$match": {'publish': true, 'attribs.name':'--colors'} },
{ "$unwind": "$attribs" },
{ "$match": {'attribs.name':'--colors'} },
{ "$group": {
"_id": "$attribs.val"
}}
])
etc
Mike
Nick
Mike
А что мешает?
у документов коллекции есть т.н. характеристики - их порядка 150 видов рандомно всетрчающихся и они встроены как массивсуббдокументов у документа. так вот при фильтре необходимо делать аггрегацию именно по субдокументам - покаывать уникалные значения.
Nick
Nick
монгус долго делает
Смотря как делаете. Всегда можно сделать нативный запрос в обход монгуса
Mike
Aleksandr
там можно составной ключ указать _id: { a: '$f1', b: '$f2'}
Mike
Mike
там вообще вот еще вопрос - максимальное количество элементов за раз - 2-3 тысячи - лучше делать все таки через монго отбор уникальных значений характеристик ? или все таки с помощью бекэнда все перебрать?
Андрей
Задача какая?
Проверить является ли req.query одним из полей схемы, что бы осуществить в дальнейшем сортировку
Aleksandr
Андрей
Устарел?
Aleksandr
это не метод
Aleksandr
это хэш
Aleksandr
paths еще есть
Андрей
Да, спасибо
Nick
Андрей
Можно валидировать данные монгусом, перед тем как прокидывать в селектор?
Андрей
А то щас если один из селекторов не является полем модели то мне ничего не возвращается, а хотелось бы что бы селектор игнорировался
Semeon
пока вы далеко не уехали я вам рекомендую поменять схему. группируйте ваши значения в один документ на час
{
_id: <ObjectID>,
date: Date("округлить до начала часа"),
address_id: <ObjectID>, // из коллекции addresses, где уже {_id:, Street:, Address:}
attribute_id: <ObjectID>, // из коллекции attributes, где {_id, type: "Temperature"}
measurements: [
{
date: Date("реальная дата"),
value: <значение>
}
],
min: <минимальное_значение>,
max: <максимальное_значени>,
count: <количество записей в measurements>,
sum: <сумма value из measurements>,
avg: <$div: [$sum, $count]
}
Привет!
Я пытался разобраться с предлагаемой вами схемой и немного запутался (в том числе ознакомился с ссылками, которвые вы давали). Сразу извиняюсь за глупые вопросы (я дизайнер). У меня получается примерно такой код, но он не работает. Скажите, я в правильном направлении думаю?
exports.weeklySummary = function(cb) {
db.get().collection(config.collectionConnect).aggregate([
{ $project:
{
_id: "$_id",
address: { _id: "$_id", City: "$City", Street: "$Street"},
attributes: { _id: "$_id", Temperature: "$Temperature", Pressure: "$Pressure"}
}
},
{ $group:
{
_id: "$_id",
// date: Date(),
address_id: { "$_id": "$address" },
attribute_id: { "$_id": "$attributes" },
measurements:
[
{
date: "$Date",
value1: "$Temperature",
value2: "$Pressure"
}
],
min: { $min: "$value1", $min: "$value2" },
max: { $max: "$value1", $max: "$value2" },
// count: { $count: "$measurements" }
// sum: {},
// avg: {}
}
}
]).next(function(err, doc) {
cb(err, doc);
});
};
Alexey
Доброе утро, народ. Проблема у меня, скорее в организации сетевого взаимодействия, но может кто-то сталкивался... В общем, поднимаю на хосте1 под CentOS три Docker контейнера с MongoDB в реплике. Пробрасываю внешний адрес и порт на внутренний порт, сеть оставляю bridge. Контейнеры видят друг друга и нормально работают в реплике. Пытаюсь подключить четвертый узел: на хосте2, под Windows, понимаю обычный процесс MongoDB, в реплику добавляю этот новый узел. Монга на втором хосте начинает пытаться подключиться, при том делает это через внешний адрес хоста, то есть маршрут работает, но подключение бесконечно закрывается (end connection) и она бесконечно перебирает порты. В брандмауэре открыт доступ для mongod, для портов 27000-27100 по протоколу TCP, разрешено подключение для хоста1 по его адресу. В CentOS разрешил изменение iptables для приложений, открыл порты, на которые биндятся контейнеры. Я уже всю голову сломал. Кто-нибудь знает, в чём причина? Помогите пожалуйста
Ilya
а как вы добавляете новый хост? через rs.add?
Ilya
вообще из под монговского хоста можно пощупать удаленный хост через телнет, например telnet new-mongo-host 27017
и если не открывается телнет сессия - значит хост под вин не доступен по сети
Alexey
Alexey
Ilya
дальше не знаю) надо более просвещенных гуру
Alexey
Но это я с хоста, а не с контейнера попробовал. Так что не показательно)
Alexey
Блин. С удаленного хоста работающая реплика недоступна
Ilya
ну вот
Ilya
там на порт монги только с определенных ип разрешен доступ ?
Ilya
может правило не правильно заведено
Alexey
Ты про хост1?
Ilya
ну я так понял что сейчас хост2(вин) не может попасть на хост1?
Ilya
на хост 1 порт монги должен же светить на ружу чтобы к нему мог подключиться хост2
Alexey
Да. Но также клиентский ROBO не может подключиться. Так что дело явно в хосте1