2015-01-23 5 views
1
에서 그 문서의 내용에 의해 배열을 정렬하려면

i를 MongoDB의 쉘에서 자바 스크립트 함수에서 다음 명령을 실행어떻게 MongoDB를

db._adminCommand({listDatabases: 1}).databases 

나 제공 :

[ 
    { 
     "name" : "local", 
     "sizeOnDisk" : 83886080, 
     "empty" : false 
    }, 
    { 
     "name" : "time", 
     "sizeOnDisk" : 83886080, 
     "empty" : false 
    }, 
    { 
     "name" : "event", 
     "sizeOnDisk" : 83886080, 
     "empty" : false 
    }, 
    { 
     "name" : "admin", 
     "sizeOnDisk" : 1, 
     "empty" : true 
    }, 
    { 
     "name" : "test", 
     "sizeOnDisk" : 1, 
     "empty" : true 
    } 
] 

인가를 필드 이름의 값에 따라 해당 배열의 문서를 정렬 할 수 있습니다.

마지막으로 내가 좀하고 싶습니다 :

[ 
    { 
     "name" : "admin", 
     "sizeOnDisk" : 1, 
     "empty" : true 
    }, 
    { 
     "name" : "event", 
     "sizeOnDisk" : 83886080, 
     "empty" : false 
    }, 
    { 
     "name" : "local", 
     "sizeOnDisk" : 83886080, 
     "empty" : false 
    }, 
    { 
     "name" : "test", 
     "sizeOnDisk" : 1, 
     "empty" : true 
    }, 
    { 
     "name" : "time", 
     "sizeOnDisk" : 83886080, 
     "empty" : false 
    } 
] 
+0

링크를 참조 . VAR 결과 = db._adminCommand ({listDatabases : 1}) 당신은 작업 할 자바 스크립트를 사용할 수 커서와 같은 데이터베이스를; result.sort (함수 (a, b) { VAR의 nameA a.name.toLowerCase =(); VAR의 nameB b.name.toLowerCase =(); 오름차순 정렬 // 문자열 경우 (nameA nameB) 창 1 명 복귀 0;} ); – Disposer

답변

2

를 사용하여 정렬 방법 : 실행 명령이 그것으로 결과 문서와 캔트 거래를 반환 :

닐 - 룬으로
db._adminCommand({listDatabases: 1}).databases.sort(function(item1, item2){return item1.name > item2.name}) 
+1

데이터베이스는 커서가 아니라 객체입니다. – Disposer

+1

네가 맞다. . db._adminCommand ({listDatabases : 1}) databases.sort (기능 (항목 1, 항목 2) {> item2.name을 item1.name를 반환}); 데이터베이스가 배열이기 때문에하지만 우리는에 Array.sort()를 사용 할 수 있습니다 –

+0

귀하의 의견에 대한 답변을 업데이트하면 내 +1을 확실히 받게됩니다. – Disposer