$ - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

$

L'operatore di $ proiezione limita il contenuto di un campo di matrice per restituire solo il primo elemento che corrisponde alla condizione di interrogazione. Viene utilizzato per proiettare un singolo elemento dell'array corrispondente.

Parametri

  • field.$: Il campo dell'array con l'operatore posizionale per proiettare il primo elemento corrispondente.

Esempio (MongoDB Shell)

L'esempio seguente dimostra l'utilizzo dell'operatore di $ proiezione per restituire solo l'elemento dell'array corrispondente.

Create documenti di esempio

db.students.insertMany([ { _id: 1, name: "Alice", grades: [85, 92, 78, 95] }, { _id: 2, name: "Bob", grades: [70, 88, 92, 65] }, { _id: 3, name: "Charlie", grades: [95, 89, 91, 88] } ]);

Esempio di interrogazione

db.students.find( { grades: { $gte: 90 } }, { name: 1, "grades.$": 1 } );

Output

{ "_id" : 1, "name" : "Alice", "grades" : [ 92 ] } { "_id" : 2, "name" : "Bob", "grades" : [ 92 ] } { "_id" : 3, "name" : "Charlie", "grades" : [ 95 ] }

In questo esempio, per ogni studente viene restituito solo il primo voto maggiore o uguale a 90.

Esempi di codice

Per visualizzare un esempio di codice per l'utilizzo dell'operatore di $ proiezione, scegliete la scheda relativa alla lingua che desiderate utilizzare:

Node.js
const { MongoClient } = require('mongodb'); async function example() { 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('students'); const result = await collection.find( { grades: { $gte: 90 } }, { projection: { name: 1, "grades.$": 1 } } ).toArray(); console.log(JSON.stringify(result, null, 2)); await client.close(); } example();
Python
from pymongo import MongoClient def example(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] collection = db['students'] result = list(collection.find( {'grades': {'$gte': 90}}, {'name': 1, 'grades.$': 1} )) print(result) client.close() example()