Javascript 如何使用环回和mongodb将嵌套对象中的属性强制转换为ObjectId?

Javascript 如何使用环回和mongodb将嵌套对象中的属性强制转换为ObjectId?,javascript,node.js,mongodb,casting,loopbackjs,Javascript,Node.js,Mongodb,Casting,Loopbackjs,假设我有以下模型定义: { "name": "Report", "idInjection": true, "trackChanges": true, "mongodb": { "collection": "report" }, "properties": { "resource" : {"type": "String"}, "date" : {"type": "Date"}, "people" : [ { // Here's

假设我有以下模型定义:

{
  "name": "Report",
  "idInjection": true,
  "trackChanges": true,
  "mongodb": {
    "collection": "report"
  },
  "properties": {
    "resource" : {"type": "String"},
    "date" : {"type": "Date"},
    "people" : [ {
        // Here's where I like to have an id property.
        "role" : {"type": "String"},
        "hours" : {"type": "Number"}
    } ],
    "name" : {"type": "String"}
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": []
}
现在,我希望在人员数组中的每个对象中都有id属性(可以通过类似report.people[0].id的方式访问),并且在插入和更新时,它应该被强制转换为ObjectId。但是,环回没有
ObjectId
类型,唯一的方法似乎是使用关系,但是外键应该是什么

有没有办法在插入和更新时将id属性强制转换为ObjectId

更新:

我尝试使用embedsMany,但id未转换:

这是我的report.json:

{
  "name": "Report",
  "base": "PersistedModel",
  "idInjection": true,
  "properties": {
    "name": {
      "type": "string",
      "required": true
    }
  },
  "validations": [],
  "relations": {
    "people" : {
      "type": "embedsMany",
      "model": "ReportPerson",
      "options": {
        "validate": true,
        "autoId": false
      }
    }
  },
  "acls": [],
  "methods": []
}
下面是我的report-person.json:

{
  "name": "ReportPerson",
  "base": "Model",
  "idInjection": true,
  "properties": {
    "hours": {"type" : "number"}
  },
  "validations": [{
      "person" : {
          "model": "Person",
          "type": "belongsTo",
          "foreignKey": "id"
      }
  }],
  "relations": {},
  "acls": [],
  "methods": []
}
当我尝试使用http API插入此
报告时:

{
    "name" : "report",
    "people" : [
        {
            "id" : "54c7926e1d621dc65495f069",
            "hours" : 2
        }
    ]
}

id
不会被强制转换为ObjectId,而是作为字符串保留在数据库中。

任何玩loopback和mongodb的人都会偶尔点击这个。 要解决环回中缺少ObjectId类型的问题,请执行以下操作: -一种方法是使用属性作为外键来描述关系,如本文所述 -另一种方法是将属性定义为JSON文件中的id

例如:

{
“myId”:{
“类型”:“字符串”,
“id”:对,
“生成”:真
}
}


现在,对该属性的请求将与传递actuel objectId或其字符串表示一起工作

您签出了吗?@RaymondFeng我更新了我的问题。@FaridNouriNeshat您成功解决了这个问题吗?