MongoDB in operatore

MongoDB in operatore
In questo post, discuteremo di come utilizzare l'operatore $ in MongoDB. L'operatore $ in ci consente di selezionare documenti in cui il valore di un determinato campo è uguale a qualsiasi valore in un array fornito.

Sintassi dell'operatore

La seguente espressione definisce la sintassi utilizzata per $ in operatore:

field: $ in: [,,…]

L'operatore confronta ciascun parametro con tutti i documenti nella raccolta specificata. È importante essere consapevoli di come viene applicato questo operatore perché può portare a colpi di prestazione.

MongoDB consiglia di limitare il numero di parametri da scansionare per evitare significativi problemi di prestazioni.

È inoltre possibile utilizzare altre funzionalità come indici per aiutare MongoDB quando si applica l'operatore $ in una grande collezione.

Esempio pratico

Prendiamo una collezione con valori del mondo reale per illustrare come usare questo operatore. Considera la raccolta del campione mostrata di seguito:

db.CreateCollection ("negozio")
db.negozio.InsertMany ([
_id: 0, "Product_name": "Apple MacBook Air", "Quantity": 100, "Price": 1199, "Categoria": ["Tech", "Apple"],
_id: 1, "Product_name": "Google Pixel 6a", "Quantity": 1000, "Price": 449, "Categoria": ["Tech", "Google"],
_id: 2, "Product_name": "Apple iPad Air", "Quantity": 550, "Price": 599, "Categoria": ["Tech", "Apple"],
_id: 3, "Product_name": "Samsung Z Fold 4", "Quantity": 400, "Price": 1799, "Categoria": ["Tech", "Samsung"],
_id: 4, "Product_name": "Sony WH-100xm5", "Quantity": 800, "Price": 400, "Categoria": ["Tech", "Sony"],
])

La query sopra crea una collezione "negozio" e aggiungi dati di esempio ad essa. Esploriamo ora come possiamo usare l'operatore $ in tale documento.

Utilizzando l'operatore $ in per individuare i documenti di corrispondenza

L'esempio seguente utilizza l'operatore $ in per trovare tutti i documenti in cui la categoria è "Apple" o "Samsung".

db.negozio.find (categoria: $ in: ["Apple", "Samsung"])

In questo caso, la query dovrebbe restituire i documenti solo con i valori "Apple" o "Samsung" nell'array di categoria.

Un output di esempio è come mostrato:


"_id": 0.0,
"Product_name": "Apple MacBook Air",
"quantità": 100.0,
"Prezzo": 1199.0,
"Categoria": [
"Tech",
"mela"
"


"_id": 2.0,
"Product_name": "Apple iPad Air",
"quantità": 550.0,
"Prezzo": 599.0,
"Categoria": [
"Tech",
"mela"
"


"_id": 3.0,
"Product_name": "Samsung Z Fold 4",
"quantità": 400.0,
"Prezzo": 1799.0,
"Categoria": [
"Tech",
"SAMSUNG"
"

Utilizzo di $ in operatore per aggiornare i documenti corrispondenti a una condizione specifica

Possiamo anche utilizzare i metodi $ in operatore $ in per eseguire un aggiornamento della raccolta utilizzando aggiornamenti () o updatemany ().

Supponiamo che il negozio abbia finito i dispositivi Apple e desideriamo aggiornare i documenti in una singola query, possiamo eseguire una richiesta come mostrato:

db.negozio.UpdateMany (categoria: $ in: ["Apple"],
$ set: disponibile: false
)

La query sopra aggiorna i documenti in cui la categoria è uguale a "Apple" e lo stato disponibile a False.

Il documento risultante dovrebbe apparire come mostrato:


"_id": 0.0,
"Product_name": "Apple MacBook Air",
"quantità": 100.0,
"Prezzo": 1199.0,
"Categoria": [
"Tech",
"mela"
",
"Disponibile": falso


"_id": 1.0,
"Product_name": "Google Pixel 6A",
"quantità": 1000.0,
"Prezzo": 449.0,
"Categoria": [
"Tech",
"Google"
"


"_id": 2.0,
"Product_name": "Apple iPad Air",
"quantità": 550.0,
"Prezzo": 599.0,
"Categoria": [
"Tech",
"mela"
",
"Disponibile": falso


"_id": 3.0,
"Product_name": "Samsung Z Fold 4",
"quantità": 400.0,
"Prezzo": 1799.0,
"Categoria": [
"Tech",
"SAMSUNG"
"


"_id": 4.0,
"Product_name": "Sony WH-100xm5",
"quantità": 800.0,
"Prezzo": 400.0,
"Categoria": [
"Tech",
"Sony"
"

Possiamo vedere qualsiasi voce Apple include un campo disponibile con il valore impostato su False.

Conclusione

In questo post, abbiamo esplorato l'operatore $ in MongoDB. Questo operatore ci consente di selezionare documenti il ​​cui valore di campo corrisponde a un determinato set di valori in un array.

Grazie per aver letto!!