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

Pobierz indeks danego elementu w polu tablicy w MongoDB

Począwszy od MongoDB w wersji 3.4 możemy użyć $indexOfArray operator zwracający indeks, pod którym dany element może być znaleziony w tablicy.

$indexOfArray przyjmuje trzy argumenty. Pierwszym z nich jest nazwa pola tablicy z prefiksem $ znak.

Drugi to element, a trzeci opcjonalny to indeks, od którego ma się rozpocząć wyszukiwanie. $indexOfArray zwraca pierwszy indeks, w którym znajduje się element, jeśli nie określono indeksu, od którego ma się rozpocząć wyszukiwanie.

Demo:

> db.collection.insertOne( { "_id" : 123, "food": [ "apple", "mango", "banana", "mango" ] } )
{ "acknowledged" : true, "insertedId" : 123 }
> db.collection.aggregate( [ { "$project": { "matchedIndex": { "$indexOfArray": [ "$food", "mango" ] } } } ] )
{ "_id" : 123, "matchedIndex" : 1 }
> db.collection.aggregate( [ { "$project": { "matchedIndex": { "$indexOfArray": [ "$food", "mango", 2 ] } } } ] )
{ "_id" : 123, "matchedIndex" : 3 }
> db.collection.aggregate( [ { "$project": { "matchedIndex": { "$indexOfArray": [ "$food", "apricot" ] } } } ]  )
{ "_id" : 123, "matchedIndex" : -1 }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Deserializacja pola po zmianie typu za pomocą sterownika MongoDb csharp

  2. mongodb ustawiony null w aktualizacji

  3. Apache-Nifi:Usuń kolekcje MongoDB

  4. Złożony dokument Mongodb Aggregate z zagnieżdżonymi wyszukiwaniami

  5. Nie można zapisać bufora do MongoDB GridFS