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

mongodbアグリゲーションフレームワーク-ネストされた配列の最初のドキュメントのフィールドを取得します

    結果を得る最も簡単な方法は、通常の検索クエリと$sliceを使用することです。 演算子:

    db.collection.find( {_id: "User1"}, {"likes.sublikes": {$slice: 1}} )
    

    集約フレームワーク(MongoDB 2.4.1のように)は$sliceをサポートしていません または配列インデックス(投票/監視機能のリクエスト: SERVER-6074 および SERVER-4589 。

    $unwindを使用して、集約フレームワークでこれを行うことができます 、$group および$first 演算子、例:

    db.collection.aggregate([
        { $match: {
             _id : "User1"
        }},
        { $unwind: "$likes.sublikes" },
        { $group: {
            _id: "$_id",
            like: { $first: "$likes.sublikes" }
        }},
        { $project: {
            _id: 0,
            "UserID": "$_id",
            "WebsiteName": "$like.WebsiteName"
        }}
    ])
    

    通常の$slice 最もパフォーマンスの高いオプションである必要があります。




    1. MongoDBで配列をオブジェクトに変換する方法

    2. MongoDB C#ドライバー:挿入時にプロパティを無視する

    3. mongorestoreエラー:ダンプファイルをどうするかわからない

    4. _http_server.js:192 throw new RangeError( `Invalid status code:$ {statusCode}`);