복붙노트

[MONGODB] 방법 2 명 MongoDB의 컬렉션을 비교?

MONGODB

방법 2 명 MongoDB의 컬렉션을 비교?

이 컬렉션 내부에만 모든 문서는 정확하게 동일한 경우에만 true를 돌려과 것이다,이 컬렉션 사이의 모든 문서를 '비교'를 시도 임.

나는 컬렉션 방법을 찾고 있었어요,하지만이 작업을 수행 할 수 있습니다 하나를 찾을 couldnt한다.

나는 몽고 쉘에서이 같은 것을 실험,하지만 난이 예상대로 작동하지 :

db.test1 == db.test2

또는

db.test1.to_json() == db.test2.to_json()

어쨌든, 메신저는 자바 스프링 데이터 MongoDB의를 사용하여.

의견을 공유하세요! 감사합니다.

해결법

  1. ==============================

    1.당신은 당신의 정의는, 이런 식으로 뭔가를 기능을 동일과 결합하여 MongoDB의 평가를 사용하여 시도 할 수 있습니다.

    당신은 당신의 정의는, 이런 식으로 뭔가를 기능을 동일과 결합하여 MongoDB의 평가를 사용하여 시도 할 수 있습니다.

    첫 번째 경우에 당신이 동일하지 않은 객체 참조를 비교하기 때문에 귀하의 방법은 작동하지 않습니다. 두 번째 경우, to_json도 동일 객체에 동일한 문자열을 생성 것이라는 보장은 없습니다.

    대신,이 같은 시도 :

    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);
    

    클라이언트에 컬렉션을 가져 오는 않고, 데이터베이스 서버 측에서 실행됩니다 해당 코드를 확인 db.eval으로.

  2. from https://stackoverflow.com/questions/9240636/how-to-compare-2-mongodb-collections by cc-by-sa and MIT license