如何使用环回将字符串存储为 objectId

how to store string as an objectId using loopback

我有一个 project.json

的环回模型

project.json

"properties" : {
 "users": {
        "type": [
        {
          "user_id": "string"
        }
      ]
    }
}

id 数组存储字符串格式

{
    "users" : [
    {
        "user_id" : "5ae319e8ac5718155ca719d0"
    },
    {
        "user_id" : "5ae31a4d770afb158ef6c048"
    }
]}

如何像这样将字符串存储为 objectId

{
     "users" : [
        {
            "user_id" : ObjectId("5ae319e8ac5718155ca719d0")
        },
        {
            "user_id" : ObjectId("5ae31a4d770afb158ef6c048")
        }
     ]
   }

您应该考虑将其定义为关系,而不是对象列表。然后您可以定义关系,例如用户或成员。我假设一个项目有很多用户,一个用户可以属于多个项目。然后,你需要定义hasAndBelongsToMany关系:

Project.hasAndBelongsToMany(User);
User.hasAndBelongsToMany(Project);

您可以阅读更多相关信息 here

在项目模型中

"relations": {
 "user": {
  "type": "belongsTo",
  "model": "user",
  "foreignKey": "id"
}}

在用户模型中

"relations": {
 "projects": {
  "type": "hasMany",
  "model": "project",
  "foreignKey": "project_user_id"
}}

如果没有关系,可以用

const ObjectId = require('mongodb').ObjectId;
var userId=ObjectId("5ae319e8ac5718155ca719d0")

并创建到数据库中。

您可以使用 typeof(userId) 检查类型。它将是一个对象。

在 Loopback 4 中,字符串可以存储为 ObjectId,如下所示: 在你的环回模型文件

中定义这个属性
@property({
        type: "string",
        mongodb: { dataType: "ObjectId" }
    })
    mainId?: string;