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

PyMongo- chọn tài liệu phụ từ bộ sưu tập của regex

Bạn cần một đường dẫn tổng hợp khớp với từng tài liệu con riêng biệt, sau đó nối lại các tài liệu con phù hợp thành mảng:

from pprint import pprint
from bson import Regex

regex = Regex(r'ab')
pprint(list(col.aggregate([{
    '$unwind': '$docs'
}, {
    '$match': {'docs.value': regex}
}, {
    '$group': {
        '_id': '$_id',
        'docs': {'$push': '$docs'}
    }
}])))

Tôi giả sử "col" là một biến trỏ đến đối tượng Bộ sưu tập PyMongo của bạn. Kết quả này:

[{u'_id': u'1', 
  u'docs': [{u'key': u'5678', u'value': u'abgh'}]},
 {u'_id': u'0',
  u'docs': [{u'key': u'1234', u'value': u'abcd'},
            {u'key': u'5678', u'value': u'abef'}]}]

Tiền tố "r" của chuỗi làm cho nó trở thành chuỗi "thô" trong Python để tránh mọi rắc rối với mã regex. Trong trường hợp này, regex chỉ là "ab" vì vậy tiền tố "r" là không cần thiết, nhưng thực hành tốt ngay bây giờ để bạn không mắc lỗi trong tương lai.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sắp xếp với một chỉ mục hoạt động như thế nào trong MongoDB?

  2. java mongo db biểu thức chính quy ký tự không phải chữ cái

  3. Cài đặt mongodb trên mac os 10.15 cho php7

  4. Trình điều khiển MongoDB và Java:bỏ qua chữ hoa và chữ thường trong truy vấn

  5. ImportError:Không có mô-đun nào có tên 'pymongo'