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

MongoDB:Làm thế nào để kết hợp tất cả các kết quả từ cùng một bộ sưu tập?

Bạn có thể sử dụng $facet tổng hợp tại đây.

db.test.aggregate([
  { "$facet": {
    "first": [
      { "$match": { "category_id": 1 }},
      { "$sort": { "createAt": -1 }},
      { "$limit": 5 }
    ],
    "second": [
      { "$match": { "category_id": 2 }},
      { "$sort": { "createAt": -1 }},
      { "$limit": 5 }
    ]
  }},
  { "$project": { "data": { "$concatArrays": ["$first", "$second"] }}},
  { "$unwind": "$data" },
  { "$replaceRoot": { "newRoot": "$data" }}
])

Cập nhật

Sử dụng javascript đơn giản

const test1 = await db.test.find({ category_id: 1 }).sort({ createAt: -1 }).limit(5)

const test2 = await db.test.find({ category_id: 1 }).sort({ createAt: -1 }).limit(5)

const test = test1.concat(test2)

console.log(test)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoimport trong docker-compo cho tôi lỗi 'Không thể bắt đầu dịch vụ'

  2. Sự khác biệt giữa MongoDB Atlas và MongoDB Atlas cho AWS

  3. Cách truy vấn / cập nhật tài liệu phụ trong MongoDB bằng trình điều khiển C #

  4. Chú thích tương đương SpringData Mongo @Column (@Property?)

  5. Làm cách nào để biết kích thước tài liệu của tôi bên trong MongoDB với trình điều khiển ruby