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

Làm thế nào để so sánh 2 bộ sưu tập mongodb?

Bạn có thể thử sử dụng mongodb eval kết hợp với hàm bằng tùy chỉnh của mình, tương tự như thế này.

Các phương thức của bạn không hoạt động vì trong trường hợp đầu tiên, bạn đang so sánh các tham chiếu đối tượng không giống nhau. Trong trường hợp thứ hai, không có gì đảm bảo rằng to_json sẽ tạo ra cùng một chuỗi ngay cả đối với các đối tượng giống nhau.

Thay vào đó, hãy thử một cái gì đó như sau:

var compareCollections = function(){
    db.test1.find().forEach(function(obj1){
        db.test2.find({/*if you know some properties, you can put them here...if don't, leave this empty*/}).forEach(function(obj2){
            var equals = function(o1, o2){
                // here goes some compare code...modified from the SO link you have in the answer.
            };

            if(equals(ob1, obj2)){
                // Do what you want to do
            }
        });
    });
};

db.eval(compareCollections);

Với db.eval, bạn đảm bảo rằng mã sẽ được thực thi ở phía máy chủ cơ sở dữ liệu mà không cần tìm nạp các bộ sưu tập cho máy khách.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách ClusterControl thực hiện khôi phục và chuyển đổi dự phòng cơ sở dữ liệu tự động

  2. TypeError:db.collection không phải là một hàm

  3. tìm kiếm và sắp xếp toàn văn php mongodb

  4. Làm cách nào để truy vấn các giá trị riêng biệt trong Mongoose?

  5. Nhập tệp JSON vào MongoDB với mongoimport