【问题标题】:How to store id(string) to objectId in nodeJs如何在nodeJs中将id(字符串)存储到objectId
【发布时间】:2018-12-26 20:40:40
【问题描述】:

var mongoose = require('mongoose');

//将字符串转换为objectId

ctx.instance.schoolId = mongoose.Types.ObjectId(ctx.instance.schoolId);

console.log(typeof (ctx.instance.schoolId))

【问题讨论】:

  • 你能发布你的模型吗?你在使用观察者来保存你的数据吗?

标签: javascript node.js mongodb loopbackjs


【解决方案1】:

当你使用mongoose.Types.ObjectId(ctx.instance.schoolId) 时,你得到了ObjectId 对象。
因此,当您尝试 console.log(typeof ctx.instance.schoolId) 时,您得到了“对象”

当您需要检查 ctx.instance.schoolId 是否为 ObjectId 时,您应该使用这样的构造

if ctx.instance.schoolId instanceof mongoose.Types.ObjectId == true {
   // schoolId is instance of ObjectId
}

【讨论】:

  • 没关系,但我发布的代码是正确的。我之前已经这样做了,但现在它不起作用
  • 所以typeof(ctx.instance.schoolId) 给你返回ObjectId 字符串?
  • 不,它仍然返回字符串。但是当我这样做的时候。 console.log(typeof(mongoose.Types.ObjectId(ctx.instance.schoolId))) 它打印为对象
  • 它可以与模型中的 getter/setter 相关。你的模型是什么样子的?你能发布instance Schema 吗?
  • 你说得对,架构有问题,schoolId 类型是字符串 kin 架构我删除了它,现在它可以工作了
猜你喜欢
  • 1970-01-01
  • 2019-02-26
  • 2020-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-28
相关资源
最近更新 更多