繁体   English   中英

从一个mongodb集合中提取数据到另一个

[英]pulling data from one mongodb collection into another

我为饮料清单创建了一个mongodb集合。该模式如下。 在其中,我列出了用户可以选择的饮料清单。

 var drinkSchema = mongoose.Schema({
  name: String,
  date: {
    type:Date,
    // default: new Date()
    default: Date.now()

  },
  caffeineLevel: String
});

var Drink = mongoose.model('Drink',drinkSchema);

module.exports = Drink;

我还为我的应用程序的用户创建了第二个架构。 理想情况下,用户将能够通过从其他模式中选择饮料来将数据移动到该模式中。 该方案对于每个用户而言都是唯一的。

var mongoose = require('mongoose');

var myDrinkSchema = mongoose.Schema({
  name: String,
  date: {
    type:Date,
    default: Date.now()
  },
  caffeineLevel: String
  // drinkWant: [{type:mongoose.Schema.Types.ObjectId,ref:'Drink'}]
});

var myDrink = mongoose.model('myDrink',myDrinkSchema);

module.exports = myDrink;

抱歉,我对此事一无所知。 我搜索了文档,并发现了数据建模http://docs.mongodb.org/manual/core/data-model-design/ 但这似乎没有特定的答案。

是否可以在模式方法中执行此操作?

您说对了,但是仅仅因为您指定了对另一个集合的引用并不意味着猫鼬会为您填充它。 实际上,您必须指定要填充的字段,然后它将根据架构中该字段的ref填充这些字段。 如果您取消注释drinkWant数组并用Drink _id填充它,那么您应该可以.populate()您的结果。

您只需要在运行查询后链接.populate() 例如:

myDrink.find({name: "someName"}).populate('drinkWant')
   .exec(function(err, results) {
      console.log(results);
});

有关更多信息, 请参见此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM