Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB:执行存储的JavaScript函数时出错_Mongodb_Stored Functions_Querying - Fatal编程技术网

MongoDB:执行存储的JavaScript函数时出错

MongoDB:执行存储的JavaScript函数时出错,mongodb,stored-functions,querying,Mongodb,Stored Functions,Querying,当我在下面运行存储的JavaScript函数时,会出现错误: > db.system.js.save({_id:"last_n_users", value: function(n){return db.users.find().sort({created_at:-1}).limit(n)}}) > db.eval("last_n_users(10)") 以下是错误: { "value" : "DBQuery: store.users -> undefined" } 为什么?

当我在下面运行存储的JavaScript函数时,会出现错误:

> db.system.js.save({_id:"last_n_users", value: function(n){return db.users.find().sort({created_at:-1}).limit(n)}})
> db.eval("last_n_users(10)")
以下是错误:

{ "value" : "DBQuery: store.users -> undefined" }
为什么??请帮帮我?

find()函数返回一个游标,它不能从JavaScript返回。 方法是使用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
        }
]

这太棒了。非常感谢你。