1
votes

comment stocker une chaîne en tant qu'objetId en utilisant le bouclage

J'ai un modèle Loopback de project.json

project.json

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

tableau de format de chaîne d'ID stocké

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

comment stocker une chaîne comme un objectId comme ceci

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


1 commentaires

vous voulez transformer le 2ème tableau en 3ème?


3 Réponses :


0
votes

Vous devriez envisager de le définir comme une relation et non comme une liste d'objets. Ensuite, vous pouvez définir des relations telles que les utilisateurs ou les membres. Je suppose qu'un projet a de nombreux utilisateurs et qu'un utilisateur peut appartenir à de nombreux projets. Ensuite, vous devez définir la relation hasAndBelongsToMany :

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

Vous pouvez en savoir plus à ce sujet ici .


0 commentaires

0
votes

Dans le modèle de projet

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

Dans le modèle utilisateur

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

S'il n'y a pas de relations, vous pouvez utiliser

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

et créer dans db.

Vous pouvez vérifier le type en utilisant typeof (userId). Ce sera un objet.


0 commentaires

1
votes

Dans Loopback 4, la chaîne peut être stockée comme ObjectId comme suit: Définissez cette propriété dans votre fichier de modèle de bouclage

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


0 commentaires