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
如何在将mongodb中的文档字段传递给Node.js上的客户端之前为其分配一些值?_Node.js_Mongodb_Mongoose - Fatal编程技术网

如何在将mongodb中的文档字段传递给Node.js上的客户端之前为其分配一些值?

如何在将mongodb中的文档字段传递给Node.js上的客户端之前为其分配一些值?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,下面是将卡阵列发送到客户端的代码 var cards = Card.find().sort('-created').exec(function (err, cards) { if (err) { return res.status(400).send({ message: errorHandler.getErrorMessage(err) }); } else { res.json(cards); }

下面是将卡阵列发送到客户端的代码

var cards = Card.find().sort('-created').exec(function (err, cards) {
    if (err) {
        return res.status(400).send({
            message: errorHandler.getErrorMessage(err)
        });
    } else {
        res.json(cards);
    }
});

模型卡有一个字段“ownerName”(在数据库中为空)和“ownerId”(某个用户的id)。对于每张卡,我需要通过card.ownerId找到一个用户,并将其名称分配到字段“ownerName”。我该怎么做呢?

我想您已经有了
用户
模型。如果是这样的话,只需在您的
模型和
用户
模型之间使用“sql join like”即可

“连接列”将是
ownerId


一旦您获得了卡和用户的列表,您就可以将用户名分配到字段
ownerName

最好正确地使用它

var mongoose = require('mongoose')
  , Schema = mongoose.Schema;

var cardSchema = Schema({
  _id: Number,
  owner: { type: Schema.Types.ObjectId, ref: 'User' },
});

var Card =  mongoose.model('Card', cardSchema);
var cards = Card.find()
  .sort('-created')
  .populate('owner')
  .exec(function (err, cards) {
    //all cards have a 'owner' field populated with the referenced user doc
  });