Mongoose - 用其他然后 id 填充

标签 mongoose

我有这两个简化的模式,我想根据 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' }
});

我读过 Mongoose Populate文档,Document#populatedModel.populate() .我仍然不确定是否可能。这个例子非常简单,我在日志收集上使用 mapReduce 和分组,因此 population 对我来说很好。

我也读过 Database references在我看来,唯一的选择是根据 _id 进行填充。但它是纯 mongodb,也许还有另一种使用 mongoose 的可能性?

是否可以不基于 _id 字段来填充查询?

最佳答案

MongoDB 不支持连接。所以 .populate 只是进行另一个查询,因此最好的解决方案是手动进行另一个查询。

关于Mongoose - 用其他然后 id 填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15763586/

相关文章:

node.js - 如何在 mongoose 中执行 findOne 查询

node.js - 根据子文档值搜索mongodb文档

schema - Mongoose 在 Node JS 中填充

node.js - 如何在mongodb查询条件中比较字符串和字符串数组

node.js - 如何在 Mongoose 的不同文件中分离模式、方法和静态

node.js - 如何在 mongoose 中设置 objectId 属性?

node.js - 我用 populate mongoose 获取所有文档

node.js - Mongoose - 独立唯一约束

javascript - 变量没有状态键,但 var.status 给出字符串

mongodb/ Mongoose : Save unique value if data is not null in from nestjs