MongoDB $ Ceil und $ Floor -Operatoren

MongoDB $ Ceil und $ Floor -Operatoren

Die $ ceil und das $ floor sind arithmetisch. Der $ ceil -Operator wird verwendet, um den niedrigsten Ganzzahlwert zu holen, der größer oder gleich dem gegebenen Ganzzahlwert ist. Während der $ Floor -Operator des MongoDB dazu arbeitet, die höchste Ganzzahl zu erhalten, die weniger oder gleich dem angegebenen Wert ist. Der MongoDB $ ceil und die $ -Föderbetreiber akzeptieren den gültigen Ausdruck, der einen numerischen Wert bewertet.

So verwenden Sie den MongoDB $ ceil und $ Floor -Operatoren

Die $ CEIL- und $ -Boden -Betreiber werden auf die Felder der Dokumente angewendet, die numerische Werte enthalten. Also setzen wir die Dokumente zusammen mit den verschiedenen Feldern in der MongoDB -Sammlung „Prüfungsbereiter“ ein. Hier verwenden wir den Befehl InsertMany, um das Dokument gleichzeitig hinzuzufügen. Die Darstellung des Einfügens des Dokuments in die Sammlung „Prüfreport“ lautet wie folgt:

db.Prüfungen.InsertMany ([

"_id": 1,
"Student": "Tan" ,
"Abteilung": "es",
"Prozentsatz": 98.99,
"CGPA": 3.9,
"Marks": "interne marks": 10.5,
"Externalmarks": 11.75
,

"_id": 2,
"Student": "Kim" ,
"Abteilung": "CS",
"Prozentsatz": 88.45,
"CGPA": 3.68,
"Marks": "interne marks": 9.5,
"Externalmarks": 7.25
,

"_id": 3,
"Student": "Jenny" ,
"Abteilung": "CS",
"Prozentsatz": 95.72,
"CGPA": 3.84,
"Marks": "interne marks": 8.5,
"Externalmarks": 9.75
,

"_id": 4,
"Student": "Harry" ,
"Abteilung": "SE",
"Prozentsatz": 84.23,
"CGPA": 3.50,
"Marks": "interne marks": 5.65,
"Externalmarks": 7.28
,

"_id": 5,
"Student": "Charlie" ,
"Abteilung": "es",
"Prozentsatz": 81.3,
"CGPA": NULL,
"Marks": "interne marks": 4.5,
"Externalmarks": 6.9

]))

Wenn die Dokumente ohne Fehlerbehebung eingefügt werden, sieht die Ausgabe, die von der MongoDB -Shell erzeugt wird, so aus:


Anerkannt: wahr,
InsertDIDs: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Beispiel 1: Verwenden des $ ceil -Operators in MongoDB

Der $ ceil -Betreiber wird hier verwendet, um die Decke des bereitgestellten Feldes aus dem Dokument der Sammlung „Prüfreport“ zu erhalten. Wir verwenden die Aggregate () -Funktion, bei der wir den $ Project -Betreiber beschäftigen. Wir geben das Feld „Schüler“ mit dem Wert von „1“ an, der zusammen mit den Deckenwerten enthalten sein muss. Der $ -Projektbetreiber wird dann mit dem Attribut „Decken%“ definiert. Das Attribut "Decken%" wird mit dem Zustand "$ ceil:" $ prozentual " festgelegt. Der „$ ceil“ -Preiber wird hier verwendet, wodurch das Feld „Prozentsatz“ für den Deckenwert generiert wird.

db.Prüfungen.Aggregat(
[

$ project:

"Student": 1,
"Decke%": $ ceil: "$ Prozent"


]
)

Die Ausgabe mit dem neuen Feld "Decken%", bei dem die Deckenwerte des Feldprozentsatzes vom $ Ceil -Betreiber angezeigt werden. Alle Deckenwerte sind die kleinsten Zahlen, die größer oder gleich den Prozentsätzen sind.

[
_id: 1, Student: 'Tan', 'Decke%': 99,
_id: 2, Student: 'Kim', 'Decke%': 89,
_id: 3, Student: 'Jenny', 'Decke%': 96,
_id: 4, Student: 'Harry', 'Decke%': 85,
_id: 5, Student: 'Charlie', 'Decke%': 82
]

Beispiel 2: Verwenden des $ Ceil -Operators für das eingebettete Dokument in MongoDB

Jetzt setzen wir den $ ceil -Betreiber ein, um den kleinsten numerischen Deckenwert zu finden, der größer oder gleich dem Wert der verschachtelten Feld "Beim" -Marke "des Feldes" Markierungen "ist. Zunächst geben wir den $ Project -Operator im aggregierten Befehl an. Dann setzen wir den Wert von „1“ für die eingebetteten „Markierungen“.interne marks ”-Feld mit den Ergebnissen angezeigt werden. Danach haben wir ein "Deckenmarks" -attribut, das mit dem $ ceil -Betreiber als „$ ceil:“ $ marks eingegeben wird.interne marks "". Beachten Sie, dass der $ Ceil -Operator mit den eingebetteten „Markierungen“ zugeordnet ist.interne marks “Feld zum Abholen des Deckenwerts dieses Feldes.

db.Prüfungen.Aggregat([
$ project:
"Markierungen.interne marks ": 1,
Deckenmarks: $ ceil: "$ marks.interne marks "]))

Die Ergebnisse zeigen, wo wir die Feldwerte der eingebetteten „Internalmarks“ haben und die Deckenwerte erhalten werden. Die erhaltenen Deckenwerte sind von den tatsächlichen Werten des angegebenen Feldes abgerundet.

[
_id: 1, Marks: interne marks: 10.5, Deckenmarks: 11,
_id: 2, Marks: interne marks: 9.5, Deckenmarks: 10,
_id: 3, Marks: interne marks: 8.5, Deckenmarks: 9,
_id: 4, Marks: interne marks: 5.65, Deckenmarks: 6,
_id: 5, Marks: interne marks: 4.5, Deckenmarks: 5
]

Beispiel 3: Verwenden des $ ceil -Operators für das fehlende Dokumentfeld in MongoDB

Wenn der $ ceil-Betreiber von MongoDB auf das Feld Nicht-Existenzdokument trifft, gibt er den Nullwert an. Betrachten Sie die Abfrage, bei der wir den $ ceil -Operator verwenden, um den kleinsten Ganzzahlwert zu erhalten, der größer oder gleich dem Feld ist, das im Dokument nicht vorhanden ist. Dafür verwenden wir den $ Match -Operator, bei dem der Ausdruck "" Abteilung ":" IT "" angegeben ist, um mit diesem bestimmten Dokument übereinzustimmen. Anschließend nennen wir den $ projektbetreiber, der mit der "1" -Gebotschaft "Schüler" eingegeben wird, die anzeigt, dass nur das Feld "Schüler" in der Ausgabe angezeigt wird. Als nächstes erstellen wir das Attribut „Deckenmobil“, damit der $ Ceil -Betreiber beschäftigt ist. Wir geben dem Feld "$ Mobile_Number" dem $ ceil -Betreiber, das das fehlende Feld der Sammlungsdokumente „Prüfungen“ ist.

db.Prüfungen.Aggregat(
[
$ Match: "Abteilung": "it",

$ project:

"Student": 1,
Deckenmobil: $ ceil: "$ mobile_number"


]
)

Dort können wir sehen, dass der Nullwert gegen das Attribut „Deckenmobil“ erhalten wird.

[
_id: 1, Student: 'Tan', Deckenmobil: NULL,
_id: 5, Student: 'Charlie', Deckenmobil: NULL
]

Beispiel 4: Verwenden Sie den $ -Floor -Operator in MongoDB

Hier beginnen wir mit einem weiteren $ Floor -Operator von MongoDB. Wir erhalten die größte Zahl vom $ -Boden -Operator, der weniger als oder gleich der angegebenen Ganzzahl ist. Wir stimmen also dem Dokument „Abteilungs“ an, dessen Wert „CS“ ist, das als Bedingung für den $ Match -Operator festgelegt wird. Danach projizieren wir das Feld „CGPA“ und das Attribut „FloorCGPA“ innerhalb des $ -Projektbetreibers. Das „FloorCGPA“ enthält die Anweisung „$ floor:„ $ cgpa ““, bei der der $ -Bood -Betreiber verwendet wird, um den größten Wert zu erhalten, der weniger als oder gleich den Werten des Felds „$ cgpa“ ist.

db.Prüfungen.Aggregat([
$ Match: Abteilung: "CS",
$ project:
CGPA: 1,
floorCGPA: $ floor: "$ cgpa"])

Der $ Floor -Operator gibt die folgenden Werte aus dem Feld „CGPA“ zurück. Das „CGPA“ sind die tatsächlichen Werte und die „floorCGPA“ sind die Bodenwerte.

[
_id: 2, cgpa: 3.68, floorCGPA: 3,
_id: 3, cgpa: 3.84, floorCGPA: 3
]

Beispiel 5: Verwenden Sie den $ Floor -Operator für den Nullwert in MongoDB

Die $ Floor und die $ ceil -Betreiber geben beide Null zurück, wenn das Feld den Nullwert enthält, um die CEIL- und Bodenwerte zu erhalten. Hier nehmen wir ein Beispiel mit dem $ Floor -Operator. Wir geben das Dokument "" _id ": 5" für den $ Match -Operator an, dessen "CGPA" -Feld den Nullwert hat. Dann übergeben wir dieses „CGPA“ -Feld an den $ -Föderungsbetreiber, der im Attribut „FloorValue“ des $ Project -Operators festgelegt ist. Hier gibt der $ Floor -Operator einfach die Nullausgabe zurück, da der Wert "CGPA" "Null" ist.

db.Prüfungen.Aggregat(
[
$ Match: "_id": 5,

$ project:

"Student": 1,
"CGPA": 1,
FloorValue: $ Floor: "$ cgpa"


]
)

Die folgenden Ergebnisse werden generiert, bei denen das Feld „CGPA“ einen Nullwert hat. Deshalb ist der Bodenwert null gegen das Feld „Bodenwert“.

[_id: 5, cgpa: null, bodenvalue: null]

Beispiel 6: Verwenden Sie den $ Floor -Operator für den NAN -Betrieb in MongoDB

Der $ Floor -Operator sowie der $ Ceil -Bediener geben NAN aus, wenn der Argumentwert NAN ist. Hier haben wir eine Implementierung dieser Erklärung. Wir finden das Dokument, in dem der Feldwert "Schüler" als "Harry" gespeichert ist. Anschließend rufen wir den $ -Boden -Operator im $ Project -Operator und das „Boden“ -attribut auf, das mit dem undefinierten Ausdruck „$ cgpa“ * 1 angegeben ist.

db.Prüfungen.Aggregat(
[
$ Match: "Student": "Harry",
$ project:
Boden: $ floor: "$ cgpa" * 1


]
)

Das Attribut „Boden“ enthält den NAN -Wert, der vom $ -Floor -Operator zurückgegeben wird.

[_id: 4, floor: nan]

Abschluss

In diesem Artikel handelt. Wir haben zuerst das Grundbeispiel sowohl des $ ceil- als auch des $ -Bood -Betreibers besprochen. Danach haben wir die verschiedenen Szenarien sowohl für den $ Ceil als auch für den $ -Föderungsbetreiber genommen. Zuerst haben wir den $ ceil -Betreiber im eingebetteten Dokument verwendet und dann den $ ceil -Betreiber auf dem Feld angewendet, das nicht Teil eines Dokuments ist. Als nächst.