Gor
И фронт за картинкой напрямую в гугл сторедж идёт
Dmitriy
ребят, подскажите, пожалуйста, есть ли у монги уникальный индекс на массив объектов и если есть, то как он будет работать (искать полное совпадение по всем полям и значениям объекта в массиве?)
yopp
Dmitriy
Что вы подразумеваете под «уникальным индексом на массив объектов»?
для примера, есть такая коллекция: https://pastebin.com/n5Ay3FME
вопросы следующие:
1) можно ли поставить (вероятнее всего можно, но тут важно как именно будет работать в итоге ограничение по такому индексу) поставить уникальный индекс на поле identity?
2) в случае если я создаю уникальный индекс на поле identity, то гарантирует ли мне это (и если да, то во всех ли случаях или есть нюансы), что следующая операция у меня упадет в ошибку с констрейнами:
db.collection_name.update(
{ "_id": ObjectId("000000000000000000000000") },
{
"identity": [
{
"type": "email",
"value": "other_email@domain.com",
"verified": true
}
]
}
)
(вставляю элемент массива, который уже присутствует в коллекции в документе с другим _id)
yopp
Dmitriy
@dd_bb спасибо
p
Всем привет!
как лучше сделать бекап базы из nodejs?
Semyon V
я думаю этого не надо делать из nodejs
Semyon V
или какого-либо языка программирования
Semyon V
это задача должна делаться при помощи консоли или каких-нибудь специальных утилит
Anonymous
Anonymous
Средствами субд
Anonymous
Хотя, чем чёрт не шутит, на каких только велосипедах не ездит 😁
Vasiliy
а не вкурсе экспортёр монги от percona он для их сборки монги или для дефолтной пойдёт?
Пантелеев
Всем привет
Пантелеев
Выбираю сервис для корзины. Составил требования и пока склоняюсь ими к монге или к тарантулу, может кто че сказать за неочевидные подводные камни монги?
Ruslan
Зачем для корзины монго?
Пантелеев
Есть список требований, который я сформулировал, могу сюда скинуть полностью
Пантелеев
Если кратко то нужно быстрое хранилище с возможностью inmemory + persistence. Основной профиль обращений это доступ по ключу, но нужны будут потенциально и небольшие выборки. Также порадует Шардинг из коробки и реплики + нужна возможность частичного изменения записи
Пантелеев
Требований по acid нет, так же нет требования к 100% сохранности данных
yopp
Пантелеев
Т.к корзина теряет актуальность очень быстро. Грубо говоря, если юзер набрал товары, т решил вернуться к ним через 4 часа то корзины уже не будет
Dmitriy
yopp
yopp
https://docs.mongodb.com/manual/core/index-ttl/
Aleksandr
Откуда в mongodb in memory хранилище?
Пантелеев
Так wired tiger частично же в памяти хранит??
Alexander
Да все всгда кешируют в память. Но никто же не говорит, что постгрес у нас ин_мемори, только потому, что он часть данных в памяти держит.
Пантелеев
Alexander
Вот не уверен. Например, есть кеш файловой системы. Если ОСь всё закешировала, то всё — ин_мемори? :-)
Aleksandr
Alexander
Я ж тебе даже говорил об этом, кажется. Но оно только в платной версии.
Gor
Alexander
Как-то не доверяю перконе. Не знаю почему. Интуитивно.
Alexander
Хотя с этими лицензиями может и стоит посмотреть... :-)
Пантелеев
Anonymous
Пантелеев
Пантелеев
Я северную часть пишу
Пантелеев
Клиентов много
Alexander
Можно собирать корзину на фронте и иметь эндпоинт, куда отправить её содержимое, чтобы получить в ответ циферки.
Пантелеев
Ну юзер хочет сразу видеть как меняется полная сумма при добавлении еще 1 позиции
Владимир Воландемортович
Alexander
Клиент добавляет и делается запрос на сервер, чтобы персчитать.
Alexander
Не надо логику пересчёта на клиентах дублировать. Это всегда ведёт к проблемам.
Пантелеев
Это во фронте делается
Что за бред
Во первых зачем мне логику дублировать 10 раз на разных языках
Во вторых допустим есть промокод который действует для определённых магазинов, на определённую сумму, в определённое время. Как мне это на фронте рулить?)
Пантелеев
Alexander
А каких?
Владимир Воландемортович
Владимир Воландемортович
А так получается, вместо того, чтобы три формулы на 10 разных языках написать, надо кучу запросов с 10 "разных языков"на сервер на любой чих
Alexander
Гыыы... На самом деле, там может быть много логики. Тот же промокод может зависеть от кучи факторов и действовать только на часть товара — т.е. на беке всё равно считать придётся. И получается, что надо разбивать логику на два места. Это будет большое поле для ошибок.
Alexander
А вот идемпотентные запросы на пересчёт цифр можно реализовать быстро, красиво и надёжно.
Aleksandr
Alexander
Ну не знаю... Макбуук у меня тоже платный. Бесплатных не делают.
hukendo
Serhii
Error: couldn't add user: command createUser requires authentication
не могу создать юзера через шел, кто подскажет в чем беда и как решить?
Semyon V
AstraSerg
И включить механизм аутентификации
Anonymous
Здравствуйте. Мне нужно сделать запрос к монге такого типа:
Если длина списка array больше 3 вернуть False, else True
Anonymous
Как это можно сделать?
Ruslan
'$size' вернёт размер массива.
Ruslan
ну, а дальше уже '$cond'
Anonymous
db.coll.aggregate([
{
$project:
{
size:
{
$cond:
{
if: { $isArray: "$array" },
then: { $size: "$array" },
else: "NA"
}
}
}
},
{
$project:
{
size: 1,
result:
{
$cond:
{
if: { $and: [ { $gt: [ "$size", 3 ] }, { $ne : [ "$size", "NA"] } ] },
then: true,
else: false
}
}
}
}
])
Promise.all([🥚, 🥚,
Promise.all([🥚, 🥚,
Здравствуйте. Можете, пожалуйста, уточнить, правильно ли я делаю? Есть метод makeTransaction, который внутри себя обновляет сразу несколько моделей.
Promise.all([🥚, 🥚,
Просто, насколько я понял, при очень быстрых запросах одна модель может успеть сохраниться, а другая нет
Nick
Nick
Тогда какая вам разница на то успеет или нет чтото обновиться?
yopp
https://www.instagram.com/tv/Bw7ONrOHx_X/
Gor
Anonymous
Valdis
кто-то может по свагеру подсказать?
Никита
Valdis
Что именно?
я хочу пингануть свагером
curl -X POST "http://192.168.200.103:3000/newAccount" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"blockchain\": \"ETH\"}"
в консоли все норм возвращает. в свагере:
TypeError: Failed to fetch
Valdis
в чем может быть проблема?