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

Đánh giá truy vấn MongoDB với NodeJS

Chuỗi bạn đang trình bày là một truy vấn mongodb shell. Chuỗi này chứa các kiểu dữ liệu cụ thể của mongodb shell và như vậy chỉ có thể sử dụng được bên trong mongodb shell. Bạn không thể phân tích cú pháp hoặc đánh giá các truy vấn này trong một môi trường (javascript) khác, bởi vì chúng không JSON hợp lệ. Do đó, eval hoặc JSON.parse thậm chí sẽ không hoạt động vì các kiểu dữ liệu cụ thể.

Nếu bạn muốn tuần tự hóa các truy vấn mongodb để sử dụng trong các môi trường khác nhau, bạn có thể sử dụng MongoDB Extended JSON.

https://docs.mongodb.org/v3.0/ tham chiếu / mongodb-Extended-json /

Đây là JSON tiêu chuẩn có thể chứa các kiểu dữ liệu mongodb. Truy vấn của bạn muốn điều này trong JSON mở rộng MongoDB.

{
    "_id": {
        "$oid": "536b07935c89be214c000009"
    },
    "date": {
        "$date": "2012-12-19T06:01:17.171Z"
    },
    "mail": {
        "$regex": "test",
        "$options": "i"
    }
}

Nếu bạn muốn phân tích cú pháp hoặc đánh giá một chuỗi như thế này để chuyển nó cùng với trình điều khiển node.js mongodb, bạn sẽ cần sử dụng một thư viện để giải mã dữ liệu này thành một đối tượng Trình điều khiển Node.js MongoDB thích hợp.

Bạn có thể sử dụng thư viện này để làm điều đó:
https:// www. npmjs.com/package/mongodb-extended-json

Bạn cũng có thể sử dụng thư viện này trong trình duyệt của mình để xây dựng các truy vấn. Hoặc bạn có thể tạo các truy vấn mongodb bằng tay.

Tôi không biết gói plugin / npm sẽ cho phép bạn tự động chuyển đổi các truy vấn trình bao mongodb sang MongoDB Extended JSON. Bạn có thể cố gắng chuyển đổi chúng tự động bằng cách triển khai một số kiểu của chính bạn (ISODate, ObjectId). Tuy nhiên, bạn sẽ không bao giờ có sự tương thích hoàn toàn giữa mongodb shell và trình điều khiển nodejs mongodb, nhiều phương thức có chữ ký và kiểu trả về khác nhau, con trỏ hoạt động khác nhau, v.v.

Ngoài ra còn có dự án này, một giải pháp thay thế cho trình điều khiển mongodb nodejs được hỗ trợ chính thức, cố gắng bắt chước shell nhiều hơn một chút nếu bạn thực sự coi trọng điều đó, nhưng nó sẽ không giúp bạn với truy vấn cụ thể của mình, bạn vẫn cần phải chuyển đổi nó.
https://docs.mongodb.org/ecosystem/ driver / node-js /




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB ::ID Mongo có phải là duy nhất trên các bộ sưu tập không?

  2. Mongodb:đẩy phần tử vào mảng lồng nhau nếu điều kiện được đáp ứng

  3. Tìm dữ liệu trong 15 phút với trường ObjectID

  4. Làm cách nào để lấy N bản ghi cuối cùng trong mongodb?

  5. Truy vấn MongoDB dựa trên Mongo ID trong ứng dụng node.js