我有2个架构
股票架构
var Stocks = new Schema({
Symbol : String,
Name : String,
MarketCap : Number,
Sector : String,
Industry : String
});
mongoose.model('Stocks', Stocks, 'Stocks');
价格模式
var Prices = new Schema({
date : Date,
symbol : String,
open : Number,
close : Number,
low : Number,
high : Number,
volume : Number
});
mongoose.model('Prices', Prices, 'Prices');
我需要在Symbol
上将两者合并,因为这是2个集合之间唯一的共同点。
在此字段中未确切了解如何使用.populate()
。
无法通过创建架构在库存架构中添加Price ref
来更改数据库中的现有数据。
需要找到一种特殊股票,其中所有价格已在Symbol上合并。
答案 0 :(得分:1)
填充不适用于String
字段。您必须使用$lookup
聚合(作为LEFT外部联接),并从两个公共字段都匹配的引用集合中提取数据。
Stock.aggregate([
{ "$lookup": {
"from": Price.collection.name,
"localField": "Symbol",
"foreignField": "symbol",
"as": "prices"
}}
])