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

オブジェクトのネストされた配列を並べ替える

    私はあなたがそれを元に戻すことを望む順序でそれを保存します。または、引き出した後、クライアント側で並べ替えます。

    どちらも不可能な場合は、集計フレームワークを使用できます。

    > db.test.insert({answers: [
    ...                 {name: 'paul', state: 'RU'},
    ...                 {name: 'steve', state: 'US'}, 
    ...                 {name: 'mike', state: 'DE'}]});
    > db.test.insert({answers: [
    ...                 {name: 'paul', state: 'RU'},
    ...                 {name: 'steve', state: 'US'}, 
    ...                 {name: 'xavier', state: 'TX'}]});
    
    db.test.aggregate([
      {$unwind: "$answers"}, 
      {$sort: {"answers.name":1}}, 
      {$group: {_id:"$_id", answers: {$push:"$answers"}}}
    ]);
    

    生成:

    {
      "result" : [
      {
        "_id" : ObjectId("5053b2477d820880c3469364"),
        "answers" : [
          {
            "name" : "paul",
            "state" : "RU"
          },
          {
            "name" : "steve",
            "state" : "US"
          },
          {
            "name" : "xavier",
            "state" : "TX"
          }
        ]
      },
      {
        "_id" : ObjectId("5053af9f7d820880c3469363"),
        "answers" : [
          {
            "name" : "mike",
            "state" : "DE"
          },
          {
            "name" : "paul",
            "state" : "RU"
          },
          {
            "name" : "steve",
            "state" : "US"
          }
        ]
      }
    ],
      "ok" : 1
    }
    


    1. MongoDBのカーソルとは何ですか?

    2. Mongodbのキーに基づいて重複を削除するにはどうすればよいですか?

    3. Springデータの一致とフィルターのネストされた配列

    4. MongoDBドキュメント内の特殊文字を含む文字列を検索しています