Javascript MongoDB:为什么';这个存储的JS函数是否返回一个值?

Javascript MongoDB:为什么';这个存储的JS函数是否返回一个值?,javascript,mongodb,stored-procedures,stored-functions,Javascript,Mongodb,Stored Procedures,Stored Functions,考虑这个虚拟函数: db.system.js.save({ _id:"findId", value:function(){ var doc = db.test.find({"_id": "1"}) return doc['_id'] } }) 运行它时,我没有得到任何回报 但是,如果我只返回db.test.find({“\u id”:“1”})我就得到了文档 有什么区别

考虑这个虚拟函数:

db.system.js.save({
    _id:"findId", 
    value:function(){
        var doc = db.test.find({"_id": "1"})
        return doc['_id']
    }
    })
运行它时,我没有得到任何回报

但是,如果我只
返回db.test.find({“\u id”:“1”})
我就得到了文档

有什么区别

更广泛的问题:我可以在服务器端执行任意JS代码吗?

例如,我想检索一个文档并使用一些if-else逻辑

db.test.find({u id:“1”})
返回
Promise
,在返回数据之前不必等待它的解析。因此,当您返回
doc[''u id']
时,
doc
未定义的。因此,您应该在承诺解析后返回该值。您可以这样做:

db.test.find({"_id": "1"}).then((document) => {
  return document .id;
})