MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Salvando um array (de 'tags') no MongoDB usando o Mongoose


Se você realmente deseja que sua matriz "tags" tenha um campo de nome e um _id gerado campo, em seguida, defina outro esquema e incorpore-o:
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]
});

Em seguida, manipule a entrada para a estrutura correta antes de criar o Post objeto:
req.body.tags = req.body.tags.replace(/\s/''/g).split(",").map(function(tag) {
    return { "name": tag };
});

var post = new Post(req.body);

Ou apenas deixe-o como um array de strings simples:
var postSchema = mongoose.Schema({
  title: String,
  permalink: String,
  content: String,
  author: {
    id: String,
    name: String,
  },
  postDate: {
    type: Date,
    default: Date.now
  },
  tags: [String]
});

E não se preocupe em mapear a propriedade do objeto:
req.body.tags = req.body.tags.replace(/\s/''/g).split(",");
var post = new Post(req.body);