如何在javascript中将数据库中的数组存储在变量中
我是javascript新手,希望将数据库中的(数组)值存储在变量中,稍后我可以在代码中操作该变量。我使用的是MongoDB,这是存储对象的一个示例如何在javascript中将数据库中的数组存储在变量中,javascript,mongodb,return-value,Javascript,Mongodb,Return Value,我是javascript新手,希望将数据库中的(数组)值存储在变量中,稍后我可以在代码中操作该变量。我使用的是MongoDB,这是存储对象的一个示例 { "_id": { "$oid": "60a2247fcfe6fbbd6ce93ee0" }, "project": ["4", "1"], "title":
{
"_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
-ingrez
?您应该看到它会打印结果,但它发生在打印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
?这行得通并打印出正确的结果吗?我试过了,但不起作用(没有打印任何内容),仍然是相同的错误。