【问题标题】:how to store string as an objectId using loopback如何使用环回将字符串存储为objectId
【发布时间】:2020-09-03 19:23:50
【问题描述】:

我有一个 project.json 的 Loopback 模型

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")
        }
     ]
   }

【问题讨论】:

  • 你想把第二个数组转换成第三个吗?

标签: node.js loopbackjs loopback


【解决方案1】:

在项目模型中

"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) 检查类型。这将是一个对象。

【讨论】:

    【解决方案2】:

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

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

    您可以阅读更多关于它的信息here

    【讨论】:

      【解决方案3】:

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

      @property({
              type: "string",
              mongodb: { dataType: "ObjectId" }
          })
          mainId?: string;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-08
        • 2023-03-19
        • 2022-01-02
        • 1970-01-01
        • 2021-03-27
        • 2020-12-03
        • 2016-07-09
        • 1970-01-01
        相关资源
        最近更新 更多