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

MongoDb Tham gia truy vấn với PHP

Bạn có thể sử dụng đường dẫn tổng hợp cho điều đó

  1. Sử dụng $lookup tham gia hai bộ sưu tập,
  2. $unwind mảng kết quả từ $lookup sân khấu
  3. $match để thực hiện tìm kiếm regex

Nếu bạn cần thực hiện regex tìm kiếm trên title trong tổng số master cũng như tài liệu, bạn có thể thêm nó vào $or của mình truy vấn của $match và nếu bạn không muốn điều đó, đừng quên xóa khỏi $ hoặc truy vấn (tôi đã thêm nó).

$pipeline = array(
    array(
        '$lookup' => array(
            'from' => 'masters',
            'localField' => '$master_id',
            'foreignField' => '$_id',
            'as' => 'master'
        )
    ),
    array(
        '$unwind' => Array(
            'path' => '$master',
            'preserveNullAndEmptyArrays' => true
         ) 
    ),
    array(
        '$match' => array(
            '$or' => array(
                array(
                    'title' => new \MongoDB\BSON\Regex($queryString),
                ),
                array(
                    'description' => new \MongoDB\BSON\Regex($queryString),
                ),
                array(
                    'master.title' => new \MongoDB\BSON\Regex($queryString),
                ),
            )
        )
    ),
    array(
        '$sort' => array(
            'field_name' => 1
        )
    ),
    array(
        '$limit' => 10
    )
)

$results = $details->aggregate($pipeline);

Bây giờ, php của tôi không phải là tuyệt vời, tôi vẫn quản lý để viết truy vấn cho bạn. Vui lòng thay đổi / sửa đổi mã theo nhu cầu của bạn.

Vấn đề là tôi đã cho bạn ý tưởng về cách đạt được điều này. Hy vọng điều đó sẽ hữu ích.

Chỉnh sửa

Để sortlimit , sử dụng $ sort $ giới hạn các giai đoạn đường ống, tôi đã thêm điều đó trong câu trả lời.

Đừng quên thay thế field_name với trường thực tế mà bạn muốn sắp xếp kết quả.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lỗi truy vấn Mongodb được chọn lồng nhau

  2. Tài liệu được phân trang bằng Flask MongoEngine với trường hình ảnh

  3. Xóa một đối tượng khỏi một mảng lồng nhau với $ pull và $ [số nhận dạng] (mongoDB 3.6)

  4. MongoDB $ chữ

  5. Không thể kết nối với mongodb