MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB — zapytania dotyczące projekcji

zapytanie projekcyjne to zapytanie, w którym określasz, które pola mają zostać zwrócone.

W MongoDB, gdy wysyłasz zapytanie do kolekcji za pomocą db.collection.find() metody, możesz określić, które pola chcesz zwrócić.

Możesz to zrobić, umieszczając w zapytaniu nazwy pól i dodając 1 lub 0 obok nich, aby określić, czy należy go zwrócić, czy nie. To jest projekcja parametr. Parametr projekcji 1 wyświetli pole i 0 ukryje to.

Przykład

Najpierw zróbmy zapytanie bez projekcja (abyśmy mogli zobaczyć, ile pól jest zwracanych):

Bez projekcji

db.musicians.find( { instrument: "Vocals"} )

Wynik:

{ "_id" : 1, "name" : "Ian Gillan", "instrument" : "Vocals" }
{ "_id" : 6, "name" : "Jeff Martin", "instrument" : "Vocals", "born" : 1969 }

Z projekcją

Teraz użyjmy projekcji, aby wyświetlić tylko nazwę pole:

db.musicians.find( { instrument: "Vocals" }, { name: 1 } )

Wynik:

{ "_id" : 1, "name" : "Ian Gillan" }
{ "_id" : 6, "name" : "Jeff Martin" }

Zauważysz, że _id pole jest automatycznie dołączane, nawet jeśli go nie określisz. Możesz wykluczyć to pole, używając 0 przeciwko niemu:

db.musicians.find( { instrument: "Vocals" }, { _id: 0, name: 1 } )

Wynik:

{ "name" : "Ian Gillan" }
{ "name" : "Jeff Martin" }

Mieszanie wtrąceń i wykluczeń

Nie możesz mieszać 1 s i 0 s (z wyjątkiem _id pole). Jeśli spróbujesz mieszać wtrącenia i wykluczenia, w ten sposób:

db.musicians.find( { instrument: "Vocals" }, { name: 1, born: 0 } )

Otrzymasz ten błąd:

Error: error: {
	"waitedMS" : NumberLong(0),
	"ok" : 0,
	"errmsg" : "Projection cannot have a mix of inclusion and exclusion.",
	"code" : 2
}

Więc albo uwzględnij pola, albo je wyklucz — nie jedno i drugie.

Oto przykład określania pól przez wykluczenie:

db.musicians.find( { instrument: "Vocals" }, { _id: 0, instrument: 0 } )

Wynik:

{ "name" : "Ian Gillan" }
{ "name" : "Jeff Martin", "born" : 1969 }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jaka jest dobra baza danych dla małej aplikacji .NET?

  2. jak pogrupować w mongoDB i zwrócić wszystkie pola w wyniku

  3. W MongoDB szukaj w tablicy i sortuj według liczby dopasowań

  4. Jak podłączyć lokalną bazę danych Mongo do dockera

  5. Jak usunąć wszystkie dokumenty z kolekcji za pomocą Mongoose?