MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Speichern eines Arrays (von „Tags“) in MongoDB mit Mongoose

Wenn Sie wirklich möchten, dass Ihr „Tags“-Array ein Namensfeld und eine generierte _id hat Feld dann ein weiteres Schema definieren und einbetten:

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]
});

Manipulieren Sie dann die Eingabe in die richtige Struktur, bevor Sie den Post erstellen Objekt:

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

var post = new Post(req.body);

Oder belassen Sie es einfach als Array einfacher Zeichenfolgen:

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

Und machen Sie sich keine Gedanken über das Zuordnen der Objekteigenschaft:

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