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

Mongo thứ tự theo độ dài của mảng

Tôi nghĩ bạn có thể sử dụng $size , nhưng đó chỉ để tìm các mảng có kích thước nhất định, không theo thứ tự.

Từ tài liệu mongo:http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24size

Bạn không thể sử dụng $ size để tìm phạm vi kích thước (ví dụ:mảng có nhiều hơn 1 phần tử). Nếu bạn cần truy vấn một phạm vi, hãy tạo trường kích thước bổ sung mà bạn tăng lên khi thêm các phần tử. Chỉ mục không thể được sử dụng cho phần $ size của truy vấn, mặc dù nếu các biểu thức truy vấn khác được bao gồm, các chỉ mục có thể được sử dụng để tìm kiếm các kết quả phù hợp trên phần đó của biểu thức truy vấn.

Có vẻ như bạn có thể khá dễ dàng thực hiện việc này với khung tổng hợp mới, chỉnh sửa: vẫn chưa ra mắt. https://www.mongodb.org/display/DOCS/Aggregation+Framework

Cập nhật Giờ đây, Khung tổng hợp đã ra đời ...

> db.test.aggregate([
  {$unwind: "$answers"}, 
  {$group: {_id:"$_id", answers: {$push:"$answers"}, size: {$sum:1}}}, 
  {$sort:{size:1}}]);
{
"result" : [
    {
        "_id" : ObjectId("5053b4547d820880c3469365"),
        "answers" : [
            {
                "content" : "answer1"
            },
            {
                "content" : "2nd answer"
            }
        ],
        "size" : 2
    },
    {
        "_id" : ObjectId("5053b46d7d820880c3469366"),
        "answers" : [
            {
                "content" : "answer1"
            },
            {
                "content" : "2nd answer"
            },
            {
                "content" : "The third answer"
            }
        ],
        "size" : 3
    }
  ],
  "ok" : 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để thực thi tập lệnh MongoDB js bằng Java MongoDriver

  2. tìm kiếm và sắp xếp toàn văn php mongodb

  3. Kiến trúc ứng dụng dựa trên Mongoose

  4. Có điều kiện $ sum trong MongoDB

  5. Tạo một cụm cơ sở dữ liệu trong đám mây với MongoDB Atlas