MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Sắp xếp có điều kiện Mongodb

Tạo một trường ảo đại diện cho một giá trị cho các mục nhập sẽ được hiển thị trên đầu danh sách, sau đó sắp xếp các mục nhập dựa trên trường đó. Bạn có thể sử dụng $addFields $cond để hoàn thành nó.

Việc triển khai sẽ giống như sau:

// ...
{
  "$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,
  },
},
// ...

Vui lòng lưu ý rằng $addField chỉ hoạt động trong MongoDB 3.4 và hơn thế nữa. do đó mã đoạn mã có thể có lỗi.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $ allElementsTrue

  2. Cách chỉ trả về các tài liệu lồng nhau của một mảng từ tất cả các tài liệu

  3. NodeJS / ExpressJS gửi phản hồi lượng lớn dữ liệu trong 1 luồng

  4. Sự khác biệt giữa MongoFactoryBean và SimpleMongoDbFactory

  5. Có thể làm gì với Mongo Aggregation / Performance of Mongo Aggregation