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

Có thể chuyển số bị chia và số bị chia của toán tử truy vấn $ mod của MongoDB không?

Một .find thông thường truy vấn với $mod toán tử sẽ không hoạt động ở đây, nhưng bạn vẫn có thể thực hiện việc này bằng cách sử dụng khung tổng hợp và $redact toán tử và $mod toán tử tổng hợp số học.

Giả sử chúng ta có các tài liệu sau trong bộ sưu tập của mình:

{ "_id" : ObjectId("573f624b4c01ce47a183a632"), "a" : 4 },
{ "_id" : ObjectId("573f63494c01ce47a183a634"), "a" : 12 },
{ "_id" : ObjectId("573f63504c01ce47a183a635"), "a" : 6 },
{ "_id" : ObjectId("573f63504c01ce47a183a636"), "a" : 24 }

Truy vấn sau trả về tất cả các tài liệu đó trong đó 60 modulo giá trị của trường a bằng 0 .

db.collection.aggregate([
    { "$redact": { 
        "$cond": [ 
            { "$eq": [ {"$mod": [ 60, "$a" ] }, 0 ] }, 
            "$$KEEP", 
            "$$PRUNE"
        ]
    }}
])

nơi sản xuất:

{ "_id" : ObjectId("573f624b4c01ce47a183a632"), "a" : 4 }
{ "_id" : ObjectId("573f63494c01ce47a183a634"), "a" : 12 }
{ "_id" : ObjectId("573f63504c01ce47a183a635"), "a" : 6 }

Một cách khác có lẽ kém hiệu quả hơn để làm điều đó, là sử dụng $where nhà điều hành.

db.collection.find("60 % this.a === 0")



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách cấu hình kích thước mẫu Java Spark sparksession

  2. MongoDB $ exp

  3. Tìm tài liệu có mảng không chứa tài liệu có giá trị trường cụ thể trong MongoDB

  4. Cập nhật từ điển trong Mongodb

  5. Cách sắp xếp hoạt động trong phần mở rộng mongodb PECL mới?