node.js - Mongoose Population ObjectId 引用正在消失?

标签 node.js mongoose population

我简化了以下代码:

var buySchema = new mongoose.Schema({
    userid:String,
    timestamp:Number,
    price:Number
});
var cardSchema = new mongoose.Schema({
    cardid: String,
    buy:[{type:mongoose.Schema.Types.ObjectId, ref:'buy'}],
});

var Card = mongoose.model('cards',cardSchema,'cards');
var Buy = mongoose.model('buy',buySchema,'buy');

Card.findOne({'cardid':cardid}, function(err, card) {

    var newBuy = new Buy({'userid':userid, timestamp:null,price:null});

    newBuy.save(function(err){
      card.buy.addToSet(newBuy._id);
    });

    card.save(function(err,card){
      console.log(card.buy); // card.buy[] has an ObjectId ref
    });

});

Card.findOne({'cardid':cardid}, function(err, card) {
   console.log(card.buy); // !!!!! card.buy[] does not have ObjectId ref !!!!!
});

buy[] 似乎也没有在 mongodb 中保存 ObjectId 引用

如果没有 ObjectId 引用,我以后该如何填充卡片?他们去哪儿了?关于人口我没有得到什么?

最佳答案

您必须为 ref:'buy' 添加引号并添加正确的架构。看mongoose js docs .

var cardSchema = new mongoose.Schema({
    cardid: String,
    buy:[{type:mongoose.Schema.Types.ObjectId, ref:'buy'}],
});

var Card = mongoose.model('cards',cardSchema);
var Buy = mongoose.model('buy',buySchema);

关于node.js - Mongoose Population ObjectId 引用正在消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23929377/

相关文章:

linux - Node JS - 监听系统事件

node.js - Mongoose 架构可选字段

html - 无法使用 Moongose-Pagination-v2 插件在数据表中进行搜索

sql-server - 我如何知道 SQL 全文索引填充何时完成?

python - python 中的种群遗传学建模

Node.js : module exports, 唯一对象

javascript - 找不到模块 : Can't resolve 'readline'

node.js - 如何在控制台中打印 mongoose find() 数组文档

performance - 在 PostgreSQL 中填充数据库

javascript - 无法将图像上传到 Node.js