MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Enregistrement d'un tableau (de 'tags') dans MongoDB à l'aide de Mongoose

Si vous voulez vraiment que votre tableau "tags" ait un champ de nom et un _id généré puis définissez un autre schéma et intégrez-le :

var tagSchema = mongoose.Schema({
    name: String
});

var postSchema = mongoose.Schema({
  title: String,
  permalink: String,
  content: String,
  author: {
    id: String,
    name: String,
  },
  postDate: {
    type: Date,
    default: Date.now
  },
  tags: [tagSchema]
});

Manipulez ensuite l'entrée dans la structure correcte avant de créer le Post objet :

req.body.tags = req.body.tags.replace(/\s/''/g).split(",").map(function(tag) {
    return { "name": tag };
});

var post = new Post(req.body);

Ou laissez-le simplement sous la forme d'un tableau de chaînes simples :

var postSchema = mongoose.Schema({
  title: String,
  permalink: String,
  content: String,
  author: {
    id: String,
    name: String,
  },
  postDate: {
    type: Date,
    default: Date.now
  },
  tags: [String]
});

Et ne vous souciez pas du mappage de la propriété de l'objet :

req.body.tags = req.body.tags.replace(/\s/''/g).split(",");
var post = new Post(req.body);