Node.js 如何从mongo中的两个不同集合中获取匹配记录
我想从存款和硬币信息收集中获取数据,这两个收集中的硬币id相同 这里我使用的是查找聚合方法。但我得到的结果是空数组Node.js 如何从mongo中的两个不同集合中获取匹配记录,node.js,mongodb,aggregation-framework,lookup,mongoose-schema,Node.js,Mongodb,Aggregation Framework,Lookup,Mongoose Schema,我想从存款和硬币信息收集中获取数据,这两个收集中的硬币id相同 这里我使用的是查找聚合方法。但我得到的结果是空数组 var mongoose=require('mongoose'); var data = mongoose.Schema({ user_id: { type: String }, coin_key: { type: String } }); var coin_info = new mongoose.Schema({ _id: { type: Stri
var mongoose=require('mongoose');
var data = mongoose.Schema({
user_id: { type: String },
coin_key: { type: String }
});
var coin_info = new mongoose.Schema({
_id: { type: String }
coin_code: { type: String }
});
var deposte_model = mongoose.model('deposit', data);
var get_coin_info = mongoose.model('coin_infos', coin_info);
var ccc=deposte_model.aggregate([
{ "$unwind": "$projects" },
{ "$unwind": "$projects.tags" },
{
$lookup:
{
from: "get_coin_info",
localField: "coin_key",
foreignField: "_id",
as: "inventory_docs"
}
},
{ "$unwind": "$inventory_docs" },
{
"$group": {
"_id": null,
"allTags": { "$addToSet": "$inventory_docs" },
"count": { "$sum": 1 }
}
}
]).exec(function(err, results){
console.log(results);
});
尝试将coin_信息的类型更改为ObjectId,并引用存款模式
var coin_info = new mongoose.Schema({
_id:{type:String}
coin_code:{
type:ObjectId,
ref:coin_infos/coin_info //Your collection name
}
});
var coin_info=mongoose.Schema({u id:mongoose.Schema.Types.ObjectId});是的,您也可以这样做前两个展开正在做什么?var ccc=deposte_model.aggregate([{$lookup:{from:“get_coin_info”,localField:“coin_key”,foreignField:“_id”,as:“inventory_docs”},])。exec(函数(err results){console.log(results);});get_coin_info表中的coin_密钥和id是否相同?