2011-10-09 4 views

답변

10

find() 함수는 JavaScript에서 반환 할 수없는 커서를 반환합니다. suggested workaround은 toArray()를 사용하여 배열 반환 값을 가져옵니다.

예 ... 전 :

> use admin 
switched to db admin 
> db.system.js.save({ _id : "foo", value: function(n){return db.system.indexes.find().limit(n)} })   
> db.eval("foo(3)")                    
{ "value" : "DBQuery: admin.system.indexes -> undefined" } 

당신이 설명하는 것처럼.
이후 :

> db.system.js.save({ _id : "foo", value: function(n){return db.system.indexes.find().limit(n).toArray()} }) 
> db.eval("foo(3)")                       
[ 
     { 
       "name" : "_id_", 
       "ns" : "admin.system.users", 
       "key" : { 
         "_id" : 1 
       } 
     }, 
     { 
       "name" : "user_1", 
       "ns" : "admin.system.users", 
       "key" : { 
         "user" : 1 
       }, 
       "unique" : false 
     }, 
     { 
       "name" : "_id_", 
       "ns" : "admin.whee", 
       "key" : { 
         "_id" : 1 
       }, 
       "v" : 0 
     } 
] 
+0

이것은 최고입니다. 고맙습니다. – Zeck

+0

여러분을 환영합니다! 행복하게 도와 드릴 수 있습니다. :) – dampier