sql >> データベース >  >> NoSQL >> MongoDB

MongoDBの配列フィールドで指定された要素のインデックスを取得します

    MongoDBバージョン3.4以降では、 $indexOfArray 配列内で特定の要素を見つけることができるインデックスを返す演算子。

    $ indexOfArray 3つの引数を取ります。 1つ目は、接頭辞 $が付いた配列フィールドの名前です。 サイン。

    2番目は要素で、3番目のオプションは検索を開始するインデックスです。 $ 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. MongoDBで日付タイプを現地時間として保存する方法はありますか?

    2. ネストされたオブジェクトプロパティでMongoDB$neを使用する方法

    3. MongoDBのC#ドライバーを使用して順序または並べ替えを指定するにはどうすればよいですか?

    4. サーバー上のMeteorでのmongodbdistinct()の実装?