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

Trình điều khiển mongo sao băng có thể xử lý các toán tử $ each và $ position không?

Nếu bạn tạo Bộ sưu tập sao băng bằng new Mongo.Collection('col') bạn nhận lại một phiên bản Minimongo không phải là Node MongoDriver gốc, phải không?

Vì vậy, một số phương pháp không hoạt động hoặc không được hỗ trợ đầy đủ .. như collection.aggregate

Nhưng bạn có thể dễ dàng truy cập trình điều khiển gốc thông qua Col.rawCollection() và thực hiện truy vấn của bạn trực tiếp trên phiên bản gốc. Tất nhiên chỉ có thể truy cập phiên bản gốc trên máy chủ .

Vì vậy, để làm những gì bạn muốn, bạn có một số cách, chẳng hạn như trước tiên bạn có thể lấy mảng, sử dụng nó theo cách bạn muốn và

$set: {my_array: sortedArray } Cá nhân tôi thích cách này hơn vì bạn chỉ cần thực hiện một thao tác cập nhật thay vì hai ($pull &$push at $position )

Nhưng nếu bạn muốn thực hiện theo cách $ push tại $ position .. chỉ cần thực hiện với trình điều khiển gốc

var col = Collection.rawCollection();
var result = Meteor.wrapAsync(col.update.bind(col)(
  /* update query goes here */
);

Lưu ý:Bạn cần Meteor.wrapAsync vì phong cách đồng bộ hóa Meteor, bạn cũng có thể thực hiện mà không cần đến nó. Collection.rawCollection (). update (...)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mảng truy vấn MongoDB C # của các đối tượng có chứa giá trị thuộc tính

  2. MongoDB phân đoạn và máy chủ cấu hình trên cùng một máy chủ?

  3. Trình phân tích cú pháp BASH BSON

  4. Bất chuẩn hóa với Mongoose:Cách đồng bộ hóa các thay đổi

  5. MongoDb Cách tổng hợp theo tháng và năm