Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Обсуждений тред (https://javascript.ru/forum/offtopic/47364-obsuzhdenijj-tred.html)

Shishiki 02.12.2016 23:12

Цитата:

Сообщение от destus
Какие вы используете nosql базы для ноды и какие orm для них?

OrientDB остальные допотопные динозавры.

Внизу страницы ссылка на драйверы для node, php ....

nerv_ 09.12.2016 12:00

Цитата:

Сообщение от Shishiki
OrientDB остальные допотопные динозавры.

1. Как насчет НЕ использования SQL-like синтаксиса для OrientDB? Это для этого решения под Node.js?
2. Что скажете об Arangodb? По описсание комбайн + перфоманс лучше, чем у ... (по инфе с офф. сайта)
http://stackoverflow.com/a/24392094

kobezzza 09.12.2016 12:28

Советую не верить бенчам, т.к. в большинстве случаев там читерство, например на бенчах ориента монго в режиме журналирование, а ориент без и разумеется ориент шустрее выходит) по факту главным критерием субд является скалируемость, а остальное уже от задач (например есть задачи где частое чтение, и редкая запись и наоборот, то там могут быть хороши совершенное разные решения).

cyber 09.12.2016 12:29

Цитата:

Сообщение от nerv_
. Как насчет НЕ использования SQL-like синтаксиса для OrientDB? Это для этого решения под Node.js?

Некоторые вещи всетаки делать на sql базах, но для ноды есть http://docs.sequelizejs.com/en/v3/ что бы не писать чисты sql запросы

kobezzza 09.12.2016 12:47

Цитата:

Сообщение от cyber (Сообщение 437522)
Некоторые вещи всетаки делать на sql базах, но для ноды есть http://docs.sequelizejs.com/en/v3/ что бы не писать чисты sql запросы

А еще лучше не писать SQL запросы, а просто дёргать хранимые процедуры) Быстрее, удобнее, безопаснее)

Makarov 09.12.2016 12:50

https://www.youtube.com/watch?v=b2F-DItXtZs

nerv_ 09.12.2016 22:38

Цитата:

Сообщение от kobezzza
Советую не верить бенчам

Правильно советуешь. Я им изначально не верю :)
Вместе с тем мне нужно выбрать ДБ, которая бы отвечала определенным требованиям, среди которых:
1. отказоустройчивость
2. масштабируемость (без джойнов)
3. сравнительно легкая "эмуляция" отношений (one-to-many etc.)
4. транзакции
5. document, key-value, graph БД
6. ...

nerv_ 20.12.2016 20:07

Вопрос по запросам в Mongoose / MongoDB:

Требуется выбрать все Issue пользователя, которые:
- или были созданы пользователем (issue.authorId === user.id)
- или были назначены на пользователя (issue.assigneeId === user.id)
- или те, в которых пользователь оставлял комментарии (notes.notableId.contains(issue.id))

Есть три схемы (ниже они упрощены)

// Issue
const schema = new mongoose.Schema(
  {
    id: Number,
    authorId: Number,
    assigneeId: Number
  }
);
schema.virtual('notes', {
  ref: 'Note',
  localField: 'id',
  foreignField: 'noteableId'
});

// Note
const schema = new mongoose.Schema(
  {
    id: Number,
    noteableId: Number,
    authorId: Number
  }
);

// User
const schema = new mongoose.Schema(
  {
    id: Number
  }
);



И два запроса
let id = 21; // user.id пользователь
let $in = yield Note.find({authorId:id}).distinct('noteableId'); // все id комментариев пользователя
this.response.body = yield Issue.find({
  $or: [
    {authorId:id},
    {assigneeId:id},
    {id:{$in}}
  ]
});



Можно ли это сделать в 1 запрос?

Спасибо.

Tim 20.12.2016 23:10

Что-то закреплённых тем в оффтопике дофига. Не сразу свою новую тему нашёл. Придётся прибегнуть к пиару чёрному: http://javascript.ru/forum/offtopic/...rrektnost.html

nerv_ 21.12.2016 13:17

Цитата:

Сообщение от Tim
Придётся прибегнуть к пиару чёрному: Как вы храните пароли и проверяете их корректность

Не ходите туда! Лучше ответьте на мой вопрос выше :D


Часовой пояс GMT +3, время: 09:16.