首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将find查询中的结果mongoose返回到变量

将find查询中的结果mongoose返回到变量
EN

Stack Overflow用户
提问于 2014-06-04 19:10:51
回答 3查看 75.3K关注 0票数 29

我需要在node.js中使用mongoose返回查询结果。

如何返回值以将值设置为变量?

我需要做的是:

代码语言:javascript
复制
var results = users.findOne({_id : users_list[i]['user_id']},{email : 1, credits : 1},{}, function(err, docs) {
    if( err || !docs) {
        console.log("No user found");
    } else {            
        return docs;
    };
});

为了拥有:

代码语言:javascript
复制
results = docs 

非常感谢你的回复。

我还有另一个问题。

如何使用find或findOne在查询操作符中传递变量?像这样:

代码语言:javascript
复制
var foo = "Blaa";

users.findOne({_id : users_list[i]['user_id']},{email : 1, credits : 1},{}, function(err, docs) {
    if( err || !docs) {
        console.log("No user found");
    } else {
        // I want to use the foo variable here
        console.log(foo);
    };
});
EN

回答 3

Stack Overflow用户

发布于 2018-02-05 20:50:12

它在赋值之前执行。

代码语言:javascript
复制
 async function(req, res) {
      var user;
      await users.findOne({}, function(err,pro){
          user=pro;
        });
      console.log(user); \\ it's define
    };
票数 9
EN

Stack Overflow用户

发布于 2019-09-20 14:30:38

您可以很容易地实现这一点。

代码语言:javascript
复制
    const getUser = async ( req, res ) => {
        let users = () => ( User.find({_id : users_list[i]['user_id']},{email : 1, credits : 1}).exec() );
        try {  res.send({"user":await users() });}
        catch(e) { console.log(e) }
    }    
    app.get('/user' , getUser);
票数 4
EN

Stack Overflow用户

发布于 2018-06-25 02:55:11

您可以通过以下代码实现预期的结果。希望这会对你有很大帮助..

代码语言:javascript
复制
var async = require('async');

// custom imports
var User = require('../models/user');
var Article = require('../models/article');

var List1Objects = User.find({});
var List2Objects = Article.find({});
var resourcesStack = {
    usersList: List1Objects.exec.bind(List1Objects),
    articlesList: List2Objects.exec.bind(List2Objects),
};

async.parallel(resourcesStack, function (error, resultSet){
    if (error) {
        res.status(500).send(error);
        return;
    }
    res.render('home', resultSet);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24035872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档