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
如何在javascript中将数据库中的数组存储在变量中_Javascript_Mongodb_Return Value - Fatal编程技术网

如何在javascript中将数据库中的数组存储在变量中

如何在javascript中将数据库中的数组存储在变量中,javascript,mongodb,return-value,Javascript,Mongodb,Return Value,我是javascript新手,希望将数据库中的(数组)值存储在变量中,稍后我可以在代码中操作该变量。我使用的是MongoDB,这是存储对象的一个示例 { "_id": { "$oid": "60a2247fcfe6fbbd6ce93ee0" }, "project": ["4", "1"], "title":

我是javascript新手,希望将数据库中的(数组)值存储在变量中,稍后我可以在代码中操作该变量。我使用的是MongoDB,这是存储对象的一个示例

{
    "_id": {
        "$oid": "60a2247fcfe6fbbd6ce93ee0"
    },
    "project": ["4", "1"],
    "title": "Test",
    "url": "test",
    "urlTitle": "test1",
    "urlInstance": "https://www.google.com/",
    "__v": 0
}
我想将项目值存储在数组(x)中。我使用这个代码。。我发现myFunction()没有返回任何内容,这就是为什么在控制台中我得到“x=undefined”。 我应该在代码中更改什么,以便函数返回项目的值?先谢谢你

function myFunction() {
  User.find({title: "Test"})
  .then(
    (myData) => {
    var rez=  myData[3].project;  
    return rez; 
  })

}

var x= new Array;
x= myFunction();
console.log ("x=" + x);

我认为这与数据库查找操作是异步的有关,这意味着它们不会立即返回,但需要一些时间才能返回。更多信息,请查看

在返回之前,您是否尝试过
console.log
-ing
rez
?您应该看到它会打印结果,但它发生在打印
x=undefined
之后。换句话说,
myFunction
不会在返回之前等待数据库检索完成

具体来说,您需要等待数据库检索的结果

异步函数myFunction(){ //此处等待可防止代码在获得结果之前继续 让myData=wait User.find({title:“Test”}); 设rez=myData[3]。项目; 返回rez; } 异步函数retrieveData(){ 设x=wait myFunction(); console.log(“x=”+x); } 检索数据();
谢谢您的回答,但是当我尝试使用您的代码时,我收到错误“未处理的错误:TypeError:无法读取myFunction中未定义的属性'project'”您是否尝试在自己的代码中添加
控制台.log(rez)
之前的
返回rez
?这行得通并打印出正确的结果吗?我试过了,但不起作用(没有打印任何内容),仍然是相同的错误。