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

Làm cách nào để nối kết quả chuỗi từ nhiều bản ghi MongoDB thành một kết quả duy nhất trong MongoDB?

Sử dụng $ group để lấy một mảng từ tất cả các tài liệu và sau đó $ giảm với $ concat để lấy một chuỗi:

db.col.aggregate([
    {
        $group: {
            _id: null,
            text: { $push: "$text" }
        }
    },
    {
        $project: {
            text: {
                $reduce: {
                    input: "$text",
                    initialValue: "",
                    in: {
                        $cond: [ { "$eq": [ "$$value", "" ] }, "$$this", { $concat: [ "$$value", " ", "$$this" ] } ]
                    }
                }
            }
        }
    }
])

Sau $group bạn sẽ nhận được một tài liệu duy nhất chứa một mảng của tất cả text các giá trị. Sau đó, $reduce "quét" mảng và nối trạng thái (giá trị $$value ) với mặt hàng hiện đang được xử lý. Đối với trạng thái mục đầu tiên sẽ là một chuỗi trống vì vậy tôi đang sử dụng $cond để tránh có khoảng trắng ở đầu.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tìm url trùng lặp trong mongodb

  2. kết nối với cơ sở dữ liệu atlas mongo

  3. Làm cách nào để xóa thuộc tính của đối tượng lồng nhau khỏi tài liệu MongoDB?

  4. Ngoại lệ không có 'MongoConnectionException'

  5. Làm cách nào để chèn một phần tử vào danh sách nội bộ MongoDB?