Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  4 5937
Hei.

Databasen har mange documenter som inneholder navnet på maskinen de er sendt fra og tidspunkt.

Nå ønsker jeg å finne det siste dokumenter som er sendt fra hver av maskinene.

Forestiller meg at dette skal være mulig å søke uten at jeg først leter opp alle de forskjellige datamaskinene etter navn for så igjen å gjøre et nytt søk der jeg finner det siste dokumente basert på listen av maskin navn.

Dokumentene i Moongose ser slik ut

Kode

Name:"DESKTOP-64PQI2Q"
FreeSpace:24888315904
Registered:2020-04-29T18:30:32.604+00:00

Name:"DESKTOP-64PQI2Q"
FreeSpace:24887432903
Registered:2020-04-04T22:36:53.932+00:00

Name:"MyComputer"
FreeSpace:24888315904
Registered:2020-04-29T18:30:32.604+00:00

Name:"MyComputer"
FreeSpace:24887432903
Registered:2020-04-04T22:36:53.932+00:00
Ønsker å hente ut en liste over maskinenen og siste FreeSpace data.
Gjør dette i Node med Mongoose db , men om noen kan fortelle meg hvordan gjøre en slik spørring i SQL vil det også hjelpe.

Noen som har noen hint som kan hjelpe meg på riktig spor ?

Kaizen
Trigonoceps occipita
vidarlo's Avatar
Donor
https://stackoverflow.com/questions/...-with-mongoose

Om du ikkje er kjent med Stack Overflow frå før, så er det altså eit nettsamfunn der du vil få svar på stortsett det du lurer på om programmering - og der det meste er svart på frå før.
Kaizen's Avatar
Trådstarter
Jo, har kikket på den du linket til, blant andre.
Men problemet er at alle slike jeg finner er det 'Finn alle med', 'sorter etter'.
Men skal opprette en tråd på StackOverflow

Takk

Hei igjen. Har ikke fått noe svar på Stackowerflow til nå.

Jeg klarer ikke tenke ut en god løsning på hvordan jeg skal gjøre dette.
Ser for meg en, der jeg oppdaterer siste dokumentet som kommer inn på hver PC , isteden for å lage et nytt hver gang.
Men da mister jeg mulighet for å hente ut historie over diskbruk over tid.
Et annent alternativ er å lage en egen db med liste over alle maskinene.
Så gjøre en spørring for hver av maskinene.
Blir ikke enig med meg selv på hvordan best løse dette.
Håpet er å finne en måte å gjøre spørringen på slik at jeg kun trenger en spørring som gir meg siste dokumentet fra hver av maskinenen.
Ville blitt glad for innspill på hvordan jeg kan løse dette.
Kaizen
Sist endret av Kaizen; 3. mai 2020 kl. 19:50. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Du kan bruke Mongoose sin Aggregate:

Kode

const items = await Model.aggregate([
  { $sort: { date: -1 } },
  {
    $group:
      {
        _id: "$owner",
        lastMessage: { $last: "$date" }
      }
  }
]);
Her sorteres dokumentene på feltet "date", og returnerer siste resultat for hver "owner".

NB: Slik jeg forstår det returnerer aggregate et rent JS objekt og ikke et Mongoose-objekt.
Sist endret av Yochi; 4. mai 2020 kl. 09:05.
Kaizen's Avatar
Trådstarter
Takker så sykt mye. Dette er akkurat hva jeg er ute etter.
Ser jeg trenger å bruke litt mer tid på å finne ut av hvordan det fungerer.
Fant i alle fall ut at jeg får riktig antall resultat.
Om jeg bytter ut $owner med Name og så logger
items[0]._id
Får jeg navnet på maskinen.
Som sagt , så skal jeg klare å finne ut av det nå.

Takker igjen ,Yochi, for kjempe hjelp.

Kaizen
Sist endret av Kaizen; 4. mai 2020 kl. 22:00.