Size: a a a

Node.js — русскоговорящее сообщество

2020 May 06

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Iliya Kobaliya
Ребят,вопрос) Читаю о блокировках для БД,и сейчас хочу использовать optimistic locking,с контролем версий.Я понял,что мне надо добавить еще в таблицу поле версия(на примере Postgres),но вот я не понял.При попытке перезаписать какие-то данные ,мне надо указать в WHERE (id,version).Как мне при запросе узнать последнюю версию правильно?Как мне вообще версию узнать?)МНе сначала сделать какой-то запрос для того что бы узнать версию?
мне кажется ты слишком рано задался таким вопросом
источник

IK

Iliya Kobaliya in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
мне кажется ты слишком рано задался таким вопросом
Ну я хочу знать хотя бы поверхостно,на уровне понимания и немного попрактиковать оптимистик блокировку.)
источник

YG

Yury Golikov in Node.js — русскоговорящее сообщество
Есть типичный пример про счет, типа два чела пользуются одним счетом. Вот мы делаем выборки и показываем им обоим, что сумма на счете 200 уе.
Дальше каждый из них отдельно принимает решение отправить команду “перевести 150 у.е на счет ххх“.
Команды приходят к нам на сервер, каждый обработчик команды идет считывать сумму на счете еще раз. Вот обработчики видят что на счете 200 уе. Потом один списывает 150, другой  списывает 150. И оба пытаются записывать новый остаток на счете 50 уе. Вот где lost update
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Iliya Kobaliya
Что бы не дать возможность перезаписать данные.(Когда 2 пользователя решают изменить одни данные в таблице (конкуренты)))))
не знаю насчет блокировок на уровне бд. но на уровне приложения это решается или через локи, или через запись в однопоточной очереди
источник

YG

Yury Golikov in Node.js — русскоговорящее сообщество
Iliya Kobaliya
Ну я хочу знать хотя бы поверхостно,на уровне понимания и немного попрактиковать оптимистик блокировку.)
Оптимистическая блокировка дает гарантию последовательного исполнения. И фейлится, если что-то пошло не так.
Те обработчики считывает сумму на счете вместе с версией, и если потом при записи у кого то версия не совпадает, тот и фейлится.
источник

YG

Yury Golikov in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
не знаю насчет блокировок на уровне бд. но на уровне приложения это решается или через локи, или через запись в однопоточной очереди
На уровне приложения также можно сделать опт. блокировки на уровне приложения. С помощью поля версии.
источник

IK

Iliya Kobaliya in Node.js — русскоговорящее сообщество
Yury Golikov
Оптимистическая блокировка дает гарантию последовательного исполнения. И фейлится, если что-то пошло не так.
Те обработчики считывает сумму на счете вместе с версией, и если потом при записи у кого то версия не совпадает, тот и фейлится.
Все я понял)В принципе в теории это все звучит не совсем и  сложно)
источник

IK

Iliya Kobaliya in Node.js — русскоговорящее сообщество
Yury Golikov
На уровне приложения также можно сделать опт. блокировки на уровне приложения. С помощью поля версии.
Большое спасибо!)
источник

AC

Anton Cherkasov in Node.js — русскоговорящее сообщество
Помогите пжлст с сортировкой в монго. Надо собрать 3 массива в один и отсортировать этот массив по дате. Делаю так:
const data = await User.aggregate([
{ $match : { _id : user._id } },
{ $lookup: { from: "standupanswers", localField: "_id", foreignField: "user", as: "standupanswers" }},
{ $lookup: { from: "updateanswers", localField: "_id", foreignField: "user", as: "updateanswers" }},
{ $lookup: { from: "recognitions", localField: "_id", foreignField: "recipient", as: "recognitions" }},
{ $project: { body: { $concatArrays: ["$standupanswers", "$updateanswers", "$recognitions"] } } },
{ $sort : {"$body.date" : 1 } }
   ]);


Все собирается, но не сортируется. Выдает “FieldPath field names may not start with ‘$’”.
Если убираю $, то ничего не выдает, просто неотсортированный массив. Не нашел пока в гугле ответа, может кто сталкивался.
источник

VL

Vanya Leyn in Node.js — русскоговорящее сообщество
убери сорт и покажи что выводит
источник

I

Igor in Node.js — русскоговорящее сообщество
спроектируй date  в корень и отсортируй
источник

NE

New Era in Node.js — русскоговорящее сообщество
Парни, что то запутался совсем, подскажите, на фронте получается картинка, и отправляется на бэк, картинка вот в таком виде находится на фронте , на бэк приходит как Buffer, как мне ее сохранить, совсем догнать не могу, правильные ли данные с фронта отправляются, нужно ли мне ее как то обрабатывать на бэке?
источник

NE

New Era in Node.js — русскоговорящее сообщество
Приходит на бэк в таком виде
источник

AC

Anton Cherkasov in Node.js — русскоговорящее сообщество
Vanya Leyn
убери сорт и покажи что выводит
Выводит массив с одном объектом, где есть id и body, в котором все объекты, что надо.
источник

AC

Anton Cherkasov in Node.js — русскоговорящее сообщество
Igor
спроектируй date  в корень и отсортируй
там у каждого объекта в body своя date. Не понимаю, как вынести date и потом отсортировать объекты из body, которые остались в боди.
источник

AC

Anton Cherkasov in Node.js — русскоговорящее сообщество
Vanya Leyn
убери сорт и покажи что выводит
Не могу понять в чем дело, но у меня даже отдельная сортировка не работает:

let sortArr = data[0].body.sort(function compare(a, b) {
var dateA = new Date(a.date);
var dateB = new Date(b.date);
return dateA - dateB;
   });


выдает все равно в одном и том же порядке, хотя даты все определяет
источник

qq

qwe qwe in Node.js — русскоговорящее сообщество
Всем привет. У кого-то был опыт работы с Samsung Smartthings?
источник

B

Bohdan in Node.js — русскоговорящее сообщество
Здравствуйте
источник

B

Bohdan in Node.js — русскоговорящее сообщество
Кто-то подскажет как сделать
Если не зарегистрирован/залогинен юзер у него нету доступа к сайту ?
Проект на mui-org
Все что он видит это меню регистрации или залогиниться
Может есть гайд?
источник

R

Roman in Node.js — русскоговорящее сообщество
Как исправить такую ошибку?


TypeError: Invalid schema configuration: True is not a valid type at path card.require. See http://bit.ly/mongoose-schematypes for a list of valid schema types.
источник