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

Cơ sở dữ liệu truy vấn Mongoid theo thuộc tính ảo

Bạn có thể thực hiện việc này trong mongoDB bằng cách sử dụng Khung tổng hợp (mới trong phiên bản 2.2).

Bạn phải có sẵn một loạt các cộng đồng Người dùng. Tôi sẽ gọi nó là userComms trong ví dụ này - Tôi mong đợi nó là một mảng có cùng loại giá trị với posts.communities.

db.posts.aggregate( [
    {
        "$unwind" : "$communities"
    },
    {
        "$match" : {
            "communities" : {
                "$in" : userComms
            }
        }
    },
    {
        "$group" : {
            "_id" : "$_id",
            "relevance" : {
                "$sum" : 1
            }
        }
    },
    {
        "$sort" : {
            "relevance" : -1
        }
    }
]);

Thao tác này trả về một tài liệu có dạng:

{
    "result" : [
        {
            "_id" : 1,
            "relevance" : 4
        },
        {
            "_id" : 6,
            "relevance" : 3
        },
...
        ]
}

Mảng kết quả chứa _id các bài đăng và có liên quan như được tính toán bằng cách thêm số lượng cộng đồng mà họ có chung với người dùng. Sau đó, nó được sắp xếp (giảm dần) theo tổng đó.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose:truy vấn tên đầy đủ với regex

  2. Tổng hợp MongoDb để lọc danh sách dựa trên id có trong đối tượng của mảng từ tất cả tài liệu của cùng một bộ sưu tập

  3. MongoDB:Làm thế nào để truy vấn một chuỗi thời gian với dữ liệu không đầy đủ?

  4. Lớp được tạo Mapstruct sử dụng trình tạo Lombok từ cha thay vì con

  5. Làm cách nào để RegisterClassMap cho tất cả các lớp trong một không gian tên cho MongoDb?