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

Số lượng không chính xác từ truy vấn tổng hợp

Vấn đề là ở đây:

"sp": {
    $split: [
        "$sourceList.source",
        "\n"
    ],
    $split: [
        "$sourceList.source",
        " "
    ]
}

chỉ $split thứ hai được thực thi bởi MongoDB và nó trả về hello\nworld như một chuỗi. Không có cú pháp "thác nước" như vậy, vì nó chỉ đơn giản là cùng một khóa JSON $split vì vậy chiến thắng cuối cùng.

Để khắc phục điều đó, bạn có thể sử dụng $ Reduce để áp dụng $split bởi khoảng trắng trên một mảng được chia theo \n giá trị:

{
    $project: {
        "sp": {
            $reduce: {
                input: { $split: [ "$sourceList.source", "\n" ] },
                initialValue: [],
                in: { $concatArrays: [ "$$value", { $split: [ "$$this", " " ] } ] }
            }
        }
    }
}

Sân chơi Mongo



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB khác biệt giữa mã lỗi 11000 và 11001

  2. Mongo DB:Làm thế nào để sao chép Tài liệu từ một bộ sưu tập và thêm nó dưới dạng một trường vào một tài liệu liên quan từ một bộ sưu tập khác?

  3. Tổng hợp MongoDB trên Loopback

  4. Làm thế nào để tìm tài liệu theo các phần của ObjectId?

  5. Cập nhật mục trong mảng với ID duy nhất