sql >> Database teknologi >  >> NoSQL >> MongoDB

Diff() mellem to samlinger i MongoDB

Et par forslag:

Du kan bruge en kombination af url og den adgangsdato (i det mindste en del af datetime-objektet) som _id for disse objekter, da du, hvad jeg kan fortælle, planlægger at skrabe hver url en gang om måneden.

Eksempel:

{
    "_id": {
        "url": "www.google.com",
        "date": ISODate("2013-03-01"),
    },
    // Other attributes
}

Dette giver ydeevne, unikhed og forespørgselsudbytte (se dette 4sq blogindlæg ). Du kan forespørge ved at gøre noget som:

db.collection.find({
    "_id": {
        "$gte": {
            "url": yourUrl,
            "date": rangeStart
         },
         "$lt": {
            "url": yourUrl,
            "date": rangeEnd
         },
    }
})

Hvilket giver fremragende, pænt sorterede (efter url SÅ efter dato, hvilket ser ud til at være lige hvad du ønsker) resultater. Du kan også bruge dette indeks til at udføre dækkede forespørgsler (over _id-feltet), hvis du bare vil have et pænt sæt af alle de url'er og måneder, du har skrabet (dette kunne sætte dig pænt op til at gennemgå hver url en ad gangen) .

Hvis du har specifikke attributter for dokumentet, som du er interesseret i at sammenligne (headers.server for eksempel) og en specifik sammenligning, du vil gøre for dem (for eksempel på udkig efter en stigning i versionsnumre), ville jeg bruge en form for regex til at få fat i de elementer, der er relevante for versionsnummeret (en hurtig og beskidt kan simpelthen hente alle numeriske elementer) og tegne dem for hver url (jeg antager, at dette ville lade dig visualisere ændringer i serversoftware over tid). Du kunne lige så nemt rapportere, når nogen af ​​disse attributter ændrede sig, ved at scanne dem i rækkefølge og sætte en begivenhed i gang, når strengene ikke var identiske (måske rapportere ændringen eller den numeriske del af ændringen).




  1. REACT anmodning om hentning af indlæg

  2. MongoDB-forespørgsel med en 'eller'-betingelse

  3. Kan MongoDB bruge et indeks, når man tjekker for eksistensen af ​​et felt med $exists-operatoren?

  4. Sådan tvinges MongoDB pullAll til at se bort fra dokumentrækkefølgen