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

时间:2019-02-20 08:14:35

标签: node.js loopbackjs 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")
        }
     ]
   }

3 个答案:

答案 0 :(得分:1)

在Loopback 4中,可以将字符串存储为ObjectId,如下所示: 在回送模型文件中定义此属性

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

答案 1 :(得分:0)

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

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

您可以详细了解here

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

并创建到数据库。

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