In questo, impareremo come verificare se un documento all'interno di una determinata raccolta contiene un determinato campo mediante l'uso dell'operatore $. Se sembra interessante, saltiamo dentro.
Sintassi dell'operatore
Cominciamo con le basi e discutiamo della sintassi dell'operatore $ esiste. L'operatore assume una sintassi relativamente semplice come illustrato nel seguente frammento di codice:
field: $ esiste:
L'operatore corrisponde quindi ai documenti che contengono il campo specificato, incluso dove il valore di detto campo è nullo. Tuttavia, se il valore booleano è falso, l'operatore restituisce tutti i documenti che non contengono detto campo.
Se vieni dai database SQL, questo operatore non è simile alla query esiste in lingua SQL.
Esempio pratico
Basta con la teoria. Vediamo una raccolta pratica e impariamo come utilizzare questo operatore per recuperare i documenti che contengono o non contengono un determinato campo.
Supponiamo di avere una raccolta con i seguenti documenti:
db.CreateCollection ("dipendenti")
Possiamo quindi aggiungere un dati di esempio come segue:
db.dipendenti.InsertMany ([
"_id": 1,
"First_name": "Raymond",
"last_name": "Zanib",
"Stato": "Active",
"Stipendio": 100000
,
"_id": 2,
"full_name": "Alexandros Flower",
"Stipendio": 110000,
"Stato": "Active"
,
"_id": 3,
"full_name": "Umer McCulloch",
"Stipendio": 109000,
"Lingue": "en"
])
Nell'esempio dato, abbiamo tre documenti con campi e valori diversi. Scopriamo come possono aiutarci a capire l'operatore $ esiste.
Prendi i documenti con un determinato campo
Possiamo usare l'operatore $ esiste per recuperare tutti i documenti che contengono il campo, "full_name". Una richiesta di esempio è come mostrato da segue:
db.dipendenti.find ("full_name": $ esiste: true)
Dato che impostiamo $ esiste su true, la query dovrebbe restituire solo i documenti che contengono il campo definito.
Un output di esempio è come mostrato:
[
_id: 2,
full_name: 'Alexandros Flower',
Stipendio: 110000,
Stato: "attivo"
,
_id: 3,
full_name: 'Umer McCulloch',
Stipendio: 109000,
Lingue: 'en'
"
Come possiamo vedere, entrambi i documenti restituiti contengono il campo "full_name".
Prendi i documenti che non includono un campo specifico
Possiamo anche fare il contrario. Nella seguente query, utilizziamo l'operatore $ esiste ma invece, impostiamo il valore su False, consentendo al documento di restituire i documenti che non includono il campo set.
db.dipendenti.find ("full_name": $ esiste: false)
In questo caso, esiste un solo documento che corrisponde alla condizione impostata.
[
_id: 1,
first_name: 'Raymond',
last_name: 'Zanib',
Stato: "attivo",
Stipendio: 100000
"
Conclusione
Ecco qua. La funzionalità dell'operatore $ è suddivisa per la tua comprensione. Resta sintonizzato per altri tutorial.