@MongoDBRussian

Страница 174 из 342
yopp
10.01.2018
17:59:53
Но это к вашему ODM или языку вопрос. Даже не представлю что это. Питон?

Vladimir
10.01.2018
18:00:01
Питон

motorengine

yopp
10.01.2018
18:00:27
Ну если у вас не вложенная модель, то как вы ещё связанный документ получите?

Google
yopp
10.01.2018
18:00:38
Конечно нужно делать второй запрос

Aleksandr
10.01.2018
18:00:52
ну вон там про некий атрибут lazy сказано то есть наверное можно сделать ленивую загрузку

в классе Campaign

Vladimir
10.01.2018
18:01:19
Пробовал - не помогает(

Aleksandr
10.01.2018
18:01:27
но выше правильно описали, если коллекция не вложенная - надо делать второй запрос

Vladimir
10.01.2018
18:03:01
Спасибо за помощь

IGOR
10.01.2018
18:39:02
Всем привет. Хочу делать приложение на 2к пользователей. Выбираю между PostgreSQL и MongoDB. С монго знаком мало. В базе будут связи типа Many-to-Many но как я прочел монго хранить их немного в другом формате. Подскажите, рационален ли мой выбор в качестве монго как БД такого приложения? Из-за моего незнания мне трудно утвердительно ответить на этот вопрос, по этому хочу получить ваш совет. Благодарю

yopp
10.01.2018
18:45:03
Что больше знакомо и на чём быстрее разработка будет, то и надо использовать.

IGOR
10.01.2018
18:50:03
Что больше знакомо и на чём быстрее разработка будет, то и надо использовать.
Вот тут то как раз и хочется попробовать новое, современное.

yopp
10.01.2018
18:51:06
Если это не для себя, а для бизнеса — лучше делать на чём быстрее можно проверить гипотезу

IGOR
10.01.2018
18:54:30
"... приложение на 2к пользователей ..." - а что означает 2k?
2000, пытался сократить текст и повыпендриваться что я такой весь современный

Stepan
10.01.2018
19:13:41
Ну ето стандарт почти уже

Google
Dmitry
10.01.2018
20:07:48
У меня REST приложение, поэтому и хочу чтобы на запрос posts/1 - выдавал первый пост из коллекции и т.д.
можно сортировать и выдавать последний db.collection.find(<query>).sort().limit(1) смотря что подразумевается под «первый пост из коллекции»

Moe
11.01.2018
10:58:36


yopp
11.01.2018
10:58:56
Всё что угодно.

eshch
11.01.2018
10:59:12
неужели имя поля

yopp
11.01.2018
10:59:33
Но скорее всего версия документа

Moe
11.01.2018
10:59:54
Всё что угодно.
если я хорошо помню - это счетчик записей в данном поле(документе)?

0 - это впервые была произведена запись?

yopp
11.01.2018
11:00:53
Это всё что угодно может быть. Это вопрос к тому, что это поле записывает.

Часто такое соглашение используют для optimistic locking

Moe
11.01.2018
11:02:04
ладно, в моем случае это к делу не относится - просто хотел уточнить вопрос благодарю )

Maksim
11.01.2018
11:28:32
День добрый, с праздниками. Пытаюсь решить странную задачу, может кто может помочь, ибо получить ответ в гугле мне не удалось.

Maksim
11.01.2018
11:30:47
Вечно ты со своими умными ссылками )

yopp
11.01.2018
11:31:23
Stable: 3.6.2 (Jan 10, 2018), Bugfix: 3.4.10 (Oct 31, 2017) 3.6.2: https://docs.mongodb.com/manual/release-notes/3.6/#january-10-2018 3.4.10: https://docs.mongodb.com/manual/release-notes/3.4/#oct-31-2017 3.2.18: https://docs.mongodb.com/manual/release-notes/3.2/#nov-29-2017

Maksim
11.01.2018
11:32:20
value = get_db()["xxx"].with_options( read_preference=ReadPreference.SECONDARY_PREFERRED).aggregate([ {"$unwind": "$interfaces"}, {"$lookup": {"from": "noc.interfaces", "localField": "interfaces", "foreignField": "_id", "as": "int"}}, {"$group": {"_id": "$int.managed_object", "method": {"$push": {"method":"$discovery_method"}}}} ]) есть такого рода запрос, который отдает { "_id" : [ NumberInt(11758) ], "method" : [ { "method" : "lldp" }, { "method" : "lldp" }, { "method" : "lldp" }, { "method" : "lldp" }, { "method" : "lldp" }, { "method" : "lldp" }, { "method" : "lldp" }, { "method" : "lldp" }, { "method" : "lldp" }, { "method" : "lldp" }, { "method" : "lldp" }, { "method" : "description" }, { "method" : "description" } но хотелось бы так же сгруппировать и посчитать сами эти методыю

Maksim
11.01.2018
11:33:12
вроде как можно юзать еще group, но как правильно его собрать не понял,.

Maksim
11.01.2018
11:35:40
_id: {moid: int, method: string}, count: {$sum: 1}
это будет второй group?

yopp
11.01.2018
11:36:06
Одним можно сразу обойтись

Google
Maksim
11.01.2018
11:36:15
хм

сейчас попробую. Спасибо

Одним можно сразу обойтись
получить не так как хотелось ) что лучше у гугла спросить, что бы понять как это работает

yopp
11.01.2018
11:38:46
https://docs.mongodb.com/manual/aggregation/

Что получилось не так?

Maksim
11.01.2018
11:41:37
{ "_id" : { "moid" : "int", "method" : "string" }, "count" : 30260.0 }

вот такая загагулина вышла.

Что получилось не так?
я пытаюсь понять, можно ли получить на выходе такое { "_id" : [ NumberInt(17162) ], "method" : [ { "lldp" : 10 }, { "description" : 2 } ] }

yopp
11.01.2018
11:45:04
Это очень плохая идея

Maksim
11.01.2018
11:45:28
понял ) пойду тогда дальше писать код для решения этой задачи

yopp
11.01.2018
11:45:46
Лучше не делать схему с динамическими именами атрибутов.

Maksim
11.01.2018
11:46:17
я с базами на вы к сожалению.

yopp
11.01.2018
11:47:14
Можно {_id: XYZ, methods: [{method: FOO, count: BAR}...]}

Или name/count

Maksim
11.01.2018
11:50:47
Можно {_id: XYZ, methods: [{method: FOO, count: BAR}...]}
походу мне до этого далеко. FOO/BAR =). Спасибо, попробую чего придумать другим путем.

Artem
11.01.2018
11:59:58
камрады, а будет ли корректно работать монга 3.2 и 3.4 в рамках одного репликасета? а то есть задача по обновлению версий, но с downtime пока не получается договориться.

Tenni
11.01.2018
12:01:39
камрады, а будет ли корректно работать монга 3.2 и 3.4 в рамках одного репликасета? а то есть задача по обновлению версий, но с downtime пока не получается договориться.
а версии какие? Там протокол репликации менялся, плюс при обновлении добавляется настройка для поддержки 3.4 лучше все же одной версии сделайте

Artem
11.01.2018
12:05:35
Версия исходного репликасета 3.2, надо обновиться до 3.4 желательно без остановки

Google
Artem
11.01.2018
12:34:06
ага, спс, я читал эту статью, но мы кроме всего прочего просто меняем еще и машины в репликасете, с квеличением диска и памяти.

yopp
11.01.2018
12:34:15
Это не важно.

Artem
11.01.2018
12:34:31
Это не важно.
да я так и понял

yopp
11.01.2018
12:34:36
Проверьте что у вас хватает оплога

Artem
11.01.2018
12:35:37
ну при текущих операциях на пару часов хватит.

yopp
11.01.2018
12:35:46
Мало.

А сколько нод с данными?

Artem
11.01.2018
12:36:40
3

yopp
11.01.2018
12:36:58
Если просто апгрейд то не важно должно быть, если перенос то надо смотреть чтоб нода потом смогла догнать мастера.

Artem
11.01.2018
12:40:16
у нас там проблема больше архитектурная, репликасет состоит из 3х нод, арбитров нет. Совместно с монгой, на паре нод еще и постгрес крутится, поэтому первоочередная задача, разнести базы по разным машинам, плюс апгрейд с версии 3.2 до версии 3.4.

yopp
11.01.2018
12:40:45
Сначала разнести, потом апгрейдить.

Остановите одну ноду, сделайте копию dbpath, копию залейте на новое железо, там поднимите новую ноду на той-же версии что остальные.

Когда убедитесь что на новом железе всё хорошо, начните обновляйся. Когда убедитесь что после обновления всё хорошо, выведите старые ноды из эксплуатации.

Driver
12.01.2018
12:52:57
добрый день. не подскажете когда обновят репу для xenial версии 3.4? а то там истек срок подписи пакетов

yopp
12.01.2018
12:54:32
Заведите тикет в jira: https://jira.mongodb.org

Если это репозиторий указанный в официальной документации. Если это сторонний репозиторий, ищите владельцев.

Алексей
12.01.2018
12:55:21
они опять да ?

yopp
12.01.2018
12:55:35
У них с этим плохо вообще :(

Алексей
12.01.2018
12:55:41
чот у парней из монги с пакетами 3 раза в год стабильно пролеты

Driver
12.01.2018
12:55:53
офрепа из доков да

Google
Алексей
12.01.2018
12:56:09
ну по тикету чинят как правило да

дня за два

yopp
12.01.2018
12:56:42
Напиши бота который им в жиру будет автоматом постить что репо сломалось ?

Driver
12.01.2018
12:57:02
окей, ясно. там с этой же подписью и дебиан репа

yopp
12.01.2018
12:57:39
Ну напиши тикет, поправят. Можешь через гугл транслейт :)

Алексей
12.01.2018
12:57:58
IGOR
12.01.2018
19:59:50
Чет не могу найти как написать чтобы монга давала доступ к БД через логин и пароль

anatolii
12.01.2018
22:27:24
https://docs.mongodb.com/manual/tutorial/enable-authentication/

Dmitriy
15.01.2018
07:07:03
Добрый день. Помогите плиз с траблой. Есть две схемы Post и Comment. Я хочу связать их так - через Post добратся к комментариям. Вот как выглядят модели: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var commentSchema = new Schema({ _id: Schema.Types.ObjectId, _post: { type: Schema.Types.ObjectId, ref: 'Post' }, text: String, created: { type: Date, default: new Date(), }, }); module.exports = mongoose.model('Comment', commentSchema);

Post: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var postSchema = new Schema({ _id: Schema.Types.ObjectId, title: String, text: String, rating: { type: Number, default: 0 }, created: { type: Date, default: new Date(), }, comments: [{ type: Schema.Types.ObjectId, ref: 'Comment' }], }); module.exports = mongoose.model('Post', postSchema);

По логике в свойстве comments должны появляться комментарии, но массив пуст при добавлении нового комментария

Post.findById(id).populate('comments').exec();

Сам комментарий успешно добавляется: Post.findById(id, (err, post) => { var comment = new Comment({ _id: new mongoose.Types.ObjectId(), text: req.body.comment, _post: post._id, }); comment.save( () => { res.redirect('/posts/' + post._id); }); });

Можете подсказать в чем может быть проблема? Заранее спасибо.

Nick
15.01.2018
07:32:54
а кто будет добавлять идшники в массив comments за вас?

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