簡體   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