MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB $log10

W MongoDB $log10 Operator potoku agregacji oblicza logarytmiczną podstawę 10 liczby i zwraca wynik jako podwójny.

$log10 akceptuje każde poprawne wyrażenie, które daje wynik nieujemnej liczby.

$log10 operator został wprowadzony w MongoDB 3.2.

Przykład

Załóżmy, że mamy kolekcję o nazwie test z następującym dokumentem:

{ "_id" : 1, "data" : 0.5 }

Możemy użyć $log10 operator do zwrócenia bazy logu 10 data pole:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        result: { $log10: "$data" }
      }
    }
  ]
)

Wynik:

{ "result" : -0.3010299956639812 }

Wartości poza zakresem

Jak wspomniano, $log10 operator akceptuje dowolne prawidłowe wyrażenie, które rozwiązuje do liczby nieujemnej. Wartości spoza tego zakresu spowodują błąd.

Załóżmy, że do naszej kolekcji dodamy następujący dokument:

{ "_id" : 2, "data" : -3 }

Uruchommy $log10 operatora względem tego dokumentu:

db.test.aggregate(
  [
    { $match: { _id: 2 } },
    { $project: { 
        _id: 0,
        result: { $log10: "$data" }
      }
    }
  ]
)

Wynik:

uncaught exception: Error: command failed: {
	"ok" : 0,
	"errmsg" : "$log10's argument must be a positive number, but is -3",
	"code" : 28761,
	"codeName" : "Location28761"
} : aggregate failed :
[email protected]/mongo/shell/utils.js:25:13
[email protected]/mongo/shell/assert.js:18:14
[email protected]/mongo/shell/assert.js:618:17
[email protected]/mongo/shell/assert.js:708:16
[email protected]/mongo/shell/db.js:266:5
[email protected]/mongo/shell/collection.js:1046:12
@(shell):1:1

Wartości puste

Wartości null zwracają null podczas korzystania z $log10 operatora.

Załóżmy, że do naszej kolekcji dodamy następujący dokument:

{ "_id" : 3, "data" : null }

Uruchommy $log10 operatora względem tego dokumentu:

db.test.aggregate(
  [
    { $match: { _id: 3 } },
    { $project: { 
        _id: 0,
        result: { $log10: "$data" }
      }
    }
  ]
)

Wynik:

{ "result" : null }

Widzimy, że wynikiem jest null .

Wartości NaN

Jeśli argument kończy się na NaN , $log10 zwraca NaN .

Przykład:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        result: { $log10: 1 * "$data" }
      }
    }
  ]
)

Wynik:

{ "result" : NaN }

Nieistniejące pola

Jeśli $log10 operator jest stosowany do pola, które nie istnieje, null jest zwracany.

Przykład:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        result: { $log10: "$name" }
      }
    }
  ]
)

Wynik:

{ "result" : null }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Najlepszy sposób na połączenie z MongoDB za pomocą Node.js

  2. Niestandardowa domena Heroku nie działa

  3. MongoDB $konwertuj

  4. Jak zoptymalizować wydajność MongoDB

  5. Błąd Node.js:Nie można znaleźć modułu „mongoose”