sql >> Databasteknik >  >> NoSQL >> MongoDB

Spara en array (med "taggar") till MongoDB med Mongoose

Om du verkligen vill att din "taggar"-array ska ha ett namnfält och ett genererat _id fältet definiera sedan ett annat schema och bädda in det:

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

Ändra sedan inmatningen till rätt struktur innan du skapar Post objekt:

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

var post = new Post(req.body);

Eller bara lämna det som en rad vanliga strängar:

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

Och oroa dig inte för att mappa objektegenskapen:

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



  1. En översikt över databasdriftsrapportering i ClusterControl

  2. Det finns ett sätt att upprätthålla referensintegritet i MongoDB

  3. Skärning mellan två eller flera sorterade uppsättningar

  4. MongoDB:mongorestore:kommandot hittades inte