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

Hvordan får man tælleværdien ved hjælp af $lookup i mongodb ved hjælp af golang?

Så din sammenlægning returnerer faktisk alle comment dokumenter i resultField felt, som implicit indeholder antallet af resultater, det er et udsnit, som du kan kontrollere længden af ​​i Go ved hjælp af den indbyggede len() funktion.

Da du kun behøver længden (antal comment). dokumenter), det er derfor, du kun ønsker at hente størrelsen af ​​dette array. Til det formål kan du bruge $addFields trin for at erstatte resultField matrix, hvor et tal er længden af ​​denne matrix.

pipe := c.Pipe([]bson.M{
    {
        "$lookup": bson.M{
            "from":         "comment",
            "localField":   "_id",
            "foreignField": "post_id",
            "as":           "resultField",
        },
    },
    {
        "$addFields": bson.M{
            "resultField": bson.M{"$size": "$resultField"},
        },
    },
})

Bemærk, at $addFields fase svarer til et $project trin, der eksplicit specificerer alle eksisterende felter i inputdokumenterne og tilføjer de nye felter. Kun tilgængelig siden MongoDB version 3.4.




  1. Benchmarking-hentning fra redis vs hukommelse i python (ved hjælp af timeit)

  2. Opret en note-app til Android med MongoDB Stitch

  3. Hvad betyder dokumentorienteret vs. nøgleværdi, når man taler om MongoDB vs. Cassandra?

  4. MongoDB findAndModify()