sql >> Database >  >> NoSQL >> MongoDB

MongoDB $abs

In MongoDB, de $abs aggregatiepijplijnoperator retourneert de absolute waarde van een getal.

Voorbeeld

Stel dat we een verzameling hebben met de naam data met het volgende document:

{ "_id" : 1, "a" : 20, "b" : -20 }

We kunnen de $abs . gebruiken operator om de absolute waarden van de a . te retourneren en b velden.

db.data.aggregate(
  [
    { $project: { 
        _id: 0,
        a: { $abs: [ "$a" ] },
        b: { $abs: [ "$b" ] }
      }
    }
  ]
)

Resultaat:

{ "a" : 20, "b" : 20 }

Absolute waarden bevatten geen tekens, en dus kunnen we zien dat het minteken is verwijderd uit de b waarde.

Je kunt een absolute waarde van een getal zien als de afstand, op de getallenlijn, van dat getal vanaf nul.

Null-waarden

Null-waarden retourneren null bij gebruik van de $abs telefoniste.

Stel dat we het volgende document aan onze collectie toevoegen:

{ "_id" : 2, "a" : 0, "b" : null }

Laten we de $abs . uitvoeren operator tegen dat document:

db.data.aggregate(
  [
    { $match: { _id: 2 } },
    { $project: { 
        _id: 0,
        a: { $abs: [ "$a" ] },
        b: { $abs: [ "$b" ] }
      }
    }
  ]
)

Resultaat:

{ "a" : 0, "b" : null }

We kunnen zien dat b opgelost tot null .

We kunnen ook zien dat 0 wordt omgezet in 0 .

NaN-waarden

Als het argument wordt omgezet in NaN , $abs retourneert NaN .

Voorbeeld:

db.data.aggregate(
  [
    { $match: { _id: 2 } },
    { $project: { 
        _id: 0,
        a: { $abs: [ "$a" ] },
        b: { $abs: [ 1 * "g" ] }
      }
    }
  ]
)

Resultaat:

{ "a" : 0, "b" : NaN }

In dit geval probeerde ik een getal te vermenigvuldigen met een string, wat resulteerde in NaN wordt geretourneerd.

Niet-bestaande velden

Als de $abs operator wordt toegepast op een veld dat niet bestaat, null wordt geretourneerd.

Voorbeeld:

db.data.aggregate(
  [
    { $match: { _id: 2 } },
    { $project: { 
        _id: 0,
        c: { $abs: [ "$c" ] }
      }
    }
  ]
)

Resultaat:

{ "c" : null }

Gecombineerd met andere operators

In dit voorbeeld combineer ik $abs met $subtract om de grootte van het verschil tussen velden a . te berekenen en b :

db.data.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { 
          $abs: { 
            $subtract: [ "$a", "$b" ] 
            }
        }
      }
    }
  ]
)

Resultaat:

{ "a" : 20, "b" : -20, "result" : 40 }


  1. Stappen om MongoDB op Amazon Linux te installeren

  2. Een overzicht van Percona Backup voor MongoDB

  3. Een tekstindex maken in MongoDB

  4. mongo-commando wordt niet herkend bij het proberen verbinding te maken met een mongodb-server