我有这两个简化的架构,我想根据 IP 地址“加入”。
var personSchema = Schema({
name: String,
ip: String
});
var logSchema = Schema({
message: String,
ip: String
});
如果 person._id 是 IP 地址,它会起作用。但这不是我的选择。
目前我已经解决了保存新日志时的问题,我搜索人员并添加对日志的引用。然后架构是这样的:
var logSchema = Schema({
message: String,
ip: String,
person: { type: Schema.Types.ObjectId, ref: 'Person' }
});
我已经阅读了猫鼬填充文档Document#populated和Model.populate()。我仍然不确定这是否可能。这个例子非常简单,我在日志收集上使用 mapReduce 和分组,因此人口对我来说非常棒。
我还阅读了数据库引用,在我看来,唯一的选择是基于 _id 进行填充。但它是纯 mongodb,也许还有另一种使用猫鼬的可能性?
是否可以填充不基于 _id 字段的查询?