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

问题描述 投票:0回答:2

我有一个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
2个回答
0
投票

在项目模型中

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

并创建到db。

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


0
投票

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

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

你可以阅读更多关于它here

© www.soinside.com 2019 - 2024. All rights reserved.