sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo obtener el valor de conteo usando $ lookup en mongodb usando golang?

Entonces, su agregación en realidad devuelve todos los comment documentos en el resultField campo, que implícitamente contiene el número de resultados, es una parte de la cual puede verificar la longitud en Go usando el len() incorporado función.

Dado que solo necesita la longitud (número de comment documentos), es por eso que solo desea recuperar el tamaño de esta matriz. Para ese propósito, puede usar el $addFields escenario para reemplazar el resultField matriz con un número que es la longitud de esta matriz.

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"},
        },
    },
})

Tenga en cuenta que $addFields etapa es equivalente a un $project etapa que especifica explícitamente todos los campos existentes en los documentos de entrada y agrega los nuevos campos. Disponible solo desde MongoDB versión 3.4.