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

Mongodb条件付きソート

    リストの一番上に表示する必要があるエントリの値を表す仮想フィールドを作成し、そのフィールドに基づいてエントリを並べ替えます。 $addFieldsを使用できます および $cond それを達成するための演算子。

    実装は次のようになります:

    // ...
    {
      "$addFields": {
        "isFeaturedSort": {
          "$cond": {
            "if": {
              "$and": {
                "publishDate": {
                  "$gte": ISODate("2019-03-14T00:00:00.000Z"),
                },
                "$eq": ["isFeatured", true],
              },
            },
            "then": 1,
            "else": 0,
          },
        },
      },
    },
    {
      "$sort": {
        "isFeaturedSort": -1, // changed
        "refreshes.refreshAt": -1,
        "publishDate": -1,
        "_id": -1,
      },
    },
    // ...
    

    $addFieldに注意してください MongoDB 3.4以降でのみ機能します。また、スニペットコードにエラーが含まれている可能性があります。




    1. MongoDBにファイルを保存する方法は?

    2. ScrapyとMongoDBを使用したWebスクレイピング

    3. MongoDB-ドキュメントを削除する

    4. Angular2ExpressJs-サーバーへのファイルのアップロード