#webdev #mongodb

Hej. Uczę się Node JS i mongoDB. Używam passportJS do logowania i tokenów JWT. Okej, umiem się zalogować, wszystko super. W jaki sposób mogę wykorzystać ten token żeby edytować tylko konkretnego Usera? Obecnie moja aplikacja działa tak, że jeśli token się zgadza, to przesyłam też w requeście _id usera i używam User.findById. Ale to jest bardzo złe, bo będąc zalogowanym i znając ID innych userów, mógłbym sobie ich edytować, to
Może ktoś wytłumaczyć mi/podesłać linki. Do czego potrzebny mi Docker :)
Tworzę aplikację #nodejs i #mongodb.
Czy jeśli użyje dockera to "przeniesienie" na produkcję będzie znacznie prostsze?
Czy dzięki temu pozbędę się np mongodb z komputera i będzie działać tylko w kontenerze, czyli będę mógł używać np nie wspieranego Ubuntu 19 a mongo i tak będzie działać w Ubuntu 18 na dokerze?

Proszę o informacje "Jak chłop krowie na rowie" :)
@cacus Najprostszym sposobem jest podmontować sobie zewnętrzne źródło do kontenera, a wewnątrz oczekiwać na zmiany w kodzie jakimś nodemonem, który będzie restartował serwer bez potrzeby ubijania kontenera. Wtedy możesz sobie spokojnie developować u siebie w VSCode, a docker będzie widział zmiany z Twojego lokalnego katalogu.

To jest ok, tylko że na prodzie taki kontener będzie wymagał raczej innej konfiguracji. Raczej nie chcesz mieć aplikacji w kontenerze zależnej od jakichś plików na hoście.(no
@Solidly: Można podmontować zewnętrzne źródła pod katalog, w którym produkcyjnie znajdują się pliki projektu umieszczone tam podczas buildu obrazu. Dzięki temu nadpisujemy zawartość i możemy pracować na lokalnych plikach
@PoteznyMagWody: Właśnie coś tam zacząłem pisać w tym Moongose i zauważyłem, że w sumie wszystko to co w Moongose mogę zrobić w czystym moongo, a więc nie rozumiem dlaczego ludzie tego używają, może dlatego, że im SQL'A przypomina.
@ssupkowski w sensie chcesz mieć w mongo osobne dokumenty na paragrafy czy jak to widzisz? jak chcesz to wszystko robić w bashu (pewnie dlatego wget?) to nada się sed albo awk, ale powodzenia w pisaniu reguł na to ;)
Chyba że wszystkie książki mają taką samą strukturę.
@macrusher: wyglad przykladowego dokumentu

{
"n": 8, // akapit #8
"title": "The Man Who Knew Too Much", // z tej książki
"author": "Chesterton, Gilbert K", // tego autora
"p": "\"A scientific interest, I suppose?\" observed March."
}

Czy mają taką samą strukturę to nie spr jeszcze.
@goomba-pl: nie mam za bardzo czasu aby z Tobą tu się kłócić, ale napisałeś coś co gdzieś tam wyczytałeś i teraz żądasz abym przedstawiał argumenty?
Więc najpierw rozwiń swoje myśli:
- brak sprawdzonych i powszechnych wzorców projektowych
- budowa sprzyjająca pisaniu spaghetti code
- kulawy menadżer pakietów

No i taki Netflix odszedł od javy na rzecz nodejs żeby sobie zaszkodzić. PayPal, Ebay czy inny LinkedIn też pewnie są niespełna rozumu.
Gdybyscie w dniu dzisiejszym rozpoczynali pisanie systemu CRM dla firmy logistycznej, to na czym oparlibyscie baze danych ?

a) tradycyjnie jakas relacyjna typu MySQL albo Postgresql
b) cos NoSQL'owego, moze MongoDB

Wiadomo, ze do tego typu oprogoramowania to bardziej pasuja relacyjne bazy danych, ale jednak uzywajac jakis NoSQL'ow, mozna obnizyc koszty...
(Chyba, ze cos sie zmienilo)

#programowanie #sql #mongodb #nosql
Mireczki dlaczego skoro spełnia się warunek w ifie, to else zostaje wykonany? Za kazdym razem pojawiam mi sie w konsoli tej pytajnik z console.loga.

User.find(query).then(doc => {

doc[0].water.map(el => {

if (el.date === time) {
el.quantity = el.quantity + req.body.waterQuantity;
doc[0].save()
.then(() => {
res.send('added');
})
.catch(() => res.status(404))
} else {
console.log('?')
}
})
});

#programowanie #javascript #mongodb #mongoose #nodejs #express #webdev
@xdeidara: Bulk jest na poziomie mongo shella, a ja używam "ORM-a" gdzie on teoretycznie powinien to zrobić za mnie ( ͡° ͜ʖ ͡°) Chyba faktycznie będę musiał zrezygnować ze spring data dla tego przypadku i zejść na niższy poziom...
@xdeidara: ok problem solved, odciążyłem troche heap ( ͡° ͜ʖ ͡°)

int PERSISTANCEBATCHSIZE = 1000;
List> batches = Lists.partition(generatedData, PERSISTANCEBATCHSIZE);
generatedData.clear();
batches.forEach(batch -> {
repository.saveAll(batch);
batch.clear();
});
Czy ktoś jest w stanie wytłumaczyć mi jak połączyć się z baza #mongodb na #mydevil ? Próbuje według ich instrukcji zainstalować Rocket.chat ale przy uruchamianiu aplikacji wywala błąd, że właśnie nie może nawiązać połączenia z bazą bo użytkownik nie ma dostępu do niej. Problem w tym, ze w ich instrukcji nigdzie nie podaje się użytkownika. Ktoś ogarniał to kiedyś?
#webdev #hosting #programowanie
@CeZiK_: czytałem to, ale to nie jest rozwiązanie problemu. Zastanawiam się czy przypadkiem zmienia MONGO_URL na ten rozwiąże problem

mongodb://myuser:my$ecretPass@somemongohost:27017/rocketchat?authSource=admin
Hey!
Piszę testy pod mongo i sytuacja jest o tyle ciekawa że wykorzystuję dwie db w aplikacji. Za rozróżnienie connection odpowiada middleware które rozpoznaje flagę w url i na podstawie jej zwraca odpowiedni connection.
Teraz pisze testy (mocha + chai) i problem polega na tym ze nie potrafię znaleźć sposobu jak zamockować globalnie middleware tak aby zwrócił connections stworzone w hooku before. Ma ktoś jakiś pomysł jak to zrobić?
Korzystam z jednego
Hej!
Potrzebuję zrobić następujący schemat w mongo:
Kolekcja zawierająca wiele koszyków, wewnątrz koszyków jest tablica z produktami.
Wychodzi mi na to że tablica będzie subDokumentem.

Jeśli jest subdokumentem z tego co widzę to nie mogę zastosować np. sort z mongo tylko musze plain array function wykorzystać? Czy wpływa to jakoś na wydajność? Czy taki schemat jest ok?

#mongodb #bazydanych #webdev