$exists - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$exists

Der $exists Operator wird verwendet, um zu überprüfen, ob ein Feld in einem Dokument existiert oder nicht. $existsbesonders nützlich bei der Arbeit mit Sparse-Indizes in Amazon DocumentDB, bei denen das indizierte Feld möglicherweise nicht in allen Dokumenten vorhanden ist.

Um einen Sparse-Index zu verwenden, den Sie in einer Abfrage erstellt haben, müssen Sie die $exists-Bedingungen für die Felder verwenden, die der Index abdecken. Wenn Sie es weglassen$exists, verwendet Amazon DocumentDB den Sparse-Index nicht für die Abfrage.

Parameter

  • field: Der Feldname, dessen Existenz überprüft werden soll.

  • value: Ein boolescher Wert (trueoderfalse), der angibt, ob das Feld in den entsprechenden Dokumenten existieren (true) oder nicht existieren (false) soll.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt die Verwendung des $exists Operators mit einem spärlichen Index für das special_diets Feld in der food Sammlung.

Erstellen Sie Beispieldokumente

db.food.insertMany([ { _id: 1, name: "Apple", special_diets: ["vegetarian", "gluten-free"] }, { _id: 2, name: "Broccoli" }, { _id: 3, name: "Chicken", special_diets: ["dairy-free"] } ]);

Erstellen Sie einen spärlichen Index für das Feld `special_diets`

db.food.createIndex({ "special_diets": 1 }, { sparse: true, name: "special_diets_sparse_asc" });

Beispiel für eine Abfrage

db.food.find({ "special_diets": { $exists: true } });

Ausgabe

[ { "_id" : 1, "name" : "Apple", "special_diets" : [ "vegetarian", "gluten-free" ] }, { "_id" : 3, "name" : "Chicken", "special_diets" : [ "dairy-free" ] } ]

Codebeispiele

Um ein Codebeispiel für die Verwendung des $exists Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

Node.js
const { MongoClient } = require('mongodb'); async function main() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const collection = db.collection('food'); const result = await collection.find({ "special_diets": { $exists: true } }).toArray(); console.log(result); await client.close(); } main();
Python
import pymongo client = pymongo.MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] collection = db['food'] result = list(collection.find({"special_diets": {"$exists": True}})) print(result) client.close()