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
}
]
這太棒了。非常感謝你。 – Zeck
不客氣!很高興我能幫上忙。 :) – dampier