# count

Devuelve el numero de documentos en una colección.

**Sintaxis:**

| Método                         | Base datos NoSQL |
| ------------------------------ | ---------------- |
| Integer count(Document... doc) | MongoDB          |
| Integer count(Filter filter)   | MongoDB          |

**Parámetros:**

Document... doc: Es opcional y se utiliza cuando deseamos contar documentos en base a una determinada condición.

### Ejemplos MongoDB:

Contamos con el documento

```
{

     "_id" : ObjectId("58841d5ab2a08a0eabd8a85b"),

    "idcontinente" : "xe",

    "continente" : "Xte",

    "planetas" : {

            "idplaneta" : "marte"

    }

 }
{

    "_id" : ObjectId("58842978b2a08a13cb01a599"),

    "idcontinente" : "am",

    "continente" : "America",

    "planetas" : {

            "idplaneta" : "tierra"

    }
}

{

    "_id" : ObjectId("58842a4db2a08a0b431541f5"),

    "idcontinente" : "xe",

    "continente" : "Xet",

    "planetas" : {

            "idplaneta" : "marte"

     }
}
```

* **Cuenta todos los documentos de la coleccion**

```
Integer n = continentesRepository.count();

Resultado: 3
```

* **Contar los elementos en base a un filtro**

```
Integer n = continentesRepository.count(new Document("idcontiente","am");

Resultado:1
```

* **Contar documentos referenciados**

Cuenta la cantidad de documentos en la colección continentes que pertenecen al planeta tierra. En documentos referenciados.

```
Integer n = continentesRepository.count(new Document("planetas",new Document("idplaneta","tierra")));

Resultado: 2
```

* **Contar documentos embebidos**

Si se tiene un documento embebido que se usa en el beans @Embedded se debe indicar el filtro en base al formato colección.atributo,valor. Para filtrar por planetas usamos : "planetas.idplaneta","marte"

```
Continentes:

{ "_id" : ObjectId("58842f11b2a08a171396fc00"),

"idcontinente" : "af",

"continente" : "Africa",

"planetas" : {

"idplaneta" : "marte",

"planeta" : "Marte"
} }
```

**Entity**

```
@Getter
@Setter
public class Continentes {
  @Id
  private String idcontinente;
  private String continente;
  @Embedded
  private Planetas planetas;
}
```

**Controller**

```
Integer n = continentesRepository.count(new Document("planetas.idplaneta", "marte")) ;

Resultado: 1
```

* **Contar en una lista de documentos embebido**

Deseamos buscar los documentos de continentes en el que este embebido el planeta marte en cualquiera de sus documentos embebidos.

```
db.continentes.find().pretty()                                                                                                    
{
    "_id" : ObjectId("5884f516b2a08a0ceb287e99"),
    "idcontinente" : "eu",
    "continente" : "Europa",
    "planetas" : [
            {
                    "idplaneta" : "marte",
                    "planeta" : "Marte",
                    "fecha" : ISODate("2017-01-21T21:21:42.044Z")
            },
            {
                    "idplaneta" : "tierra",
                    "planeta" : "Tierra",
                    "fecha" : ISODate("2017-01-21T21:21:42.044Z")
            }
    ]
 }
  {
    "_id" : ObjectId("5884f585b2a08a0da194491d"),
    "idcontinente" : "am",
    "continente" : "America",
    "planetas" : [
            {
                    "idplaneta" : "marte",
                    "planeta" : "Marte",
                    "fecha" : ISODate("2017-01-21T21:21:42.044Z")
            }
    ]
}
```

**Entity**

```
@Getter
@Setter
public class Continentes {
@Id
private String idcontinente;
private String continente;
@Embedded private List planetas;

@Override
public String toString() {
    return "Continentes{" + "idcontinente=" + idcontinente + ", continente=" + continente + ", planetas=" + planetas + '}';
}
}
```

**Controller**

```
   Integer n = continentesRepository.count(new Document("planetas.idplaneta", "tierra")) ;

   Resultado: 2
```

## Count con FILTER

Cuenta los documentos en la coleccion en base a un filtro.

* Almacen sea al logeado y que el idestatusfactura != 5

```java
Bson filter = Filters.and(Filters.eq("almacen.idalmacen",loginController.getAlmacen().getIdalmacen()), Filters.ne("estatusfactura.idestatusfactura", 5));
totalFacturas = facturaRepository.count(filter);
```

![](https://1490144122-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lc1Wg6bBVlJX-GjApa1%2F-Lc1WhtDA-TTmZ6My9OJ%2F-Lc1Wuy-dhGwQcLZPpcA%2Fdd.png?generation=1554820617436887\&alt=media)
