如何在nodejs中执行猫鼬查询

时间:2018-08-30 12:36:53

标签: javascript node.js mongodb

我是nodeJS和JS的新手。

我需要使用findone从猫鼬集合中获取数据,并将其存储在变量中。下面的代码在 resultarray 中存储值,但不在 memindex 中存储值。不确定如何存储在 memindex 中。

memindex = Manufacturer.findOne({name: result[key].name}, function(err, resultarray) {
console.log("resultarray", resultarray);});

我需要 memindex 的原因是,我需要在其他条件下使用它。

3 个答案:

答案 0 :(得分:1)

尝试这种方式:

var memindex;

Manufacturer.findOne({name: result[key].name},function(err, resultarray) {
    console.log("resultarray", resultarray);
    memindex = resultarray;
});

答案 1 :(得分:1)

使用函数代替突变全局变量:

const memindex = await Manufacturer.findOneAsync({name: result[key].name});

这是一个异步功能,您可能要考虑将Promise驻留在Promise和/或async / await中。

答案 2 :(得分:0)

暂时将其他两个答案放在一边,由于某种原因,它们要求您更改分配变量的方式。

您的初始代码几乎在那里。仅在您的回调函数中,您不会从查询中返回结果。

memindex = Manufacturer.findOne({name: result[key].name}, function(err, resultarray) {
    console.log("resultarray", resultarray);
    return resultarray;
});

findOne的第一个参数是您的搜索过滤器,第二个参数是响应完成后将被调用的函数。在此示例中,我们将数据返回给调用方,在这种情况下为memindex

findOne Reference