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" } ] } }
3 Réponses :
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 .
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.
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;
vous voulez transformer le 2ème tableau en 3ème?