MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Вземете индекс на даден елемент в полето на масив в MongoDB

Започвайки от MongoDB версия 3.4, можем да използваме $indexOfArray оператор за връщане на индекса, при който даден елемент може да бъде намерен в масива.

$indexOfArray приема три аргумента. Първото е името на полето на масива с префикс $ знак.

Вторият е елементът, а третият незадължителен е индексът, от който да започне търсенето. $indexOfArray връща първия индекс, при който е намерен елементът, ако индексът, от който да започне търсенето, не е посочен.

Демо:

> 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. NoSQL срещу SQL, когато скалируемостта е без значение

  2. MongoDB:BSON към JSON

  3. Правилно вмъкване на DateTime от c# към mongodb

  4. Транзакции в MongoDB

  5. Използване на собствени ES6 обещания с MongoDB