sql >> Database >  >> NoSQL >> MongoDB

Een array (van 'tags') opslaan in MongoDB met Mongoose

Als u echt wilt dat uw "tags"-array een naamveld heeft en een gegenereerde _id veld definieer dan een ander schema en sluit het in:

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

Manipuleer vervolgens de invoer naar de juiste structuur voordat u de Post . maakt voorwerp:

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

var post = new Post(req.body);

Of laat het gewoon als een array van gewone strings:

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

En maak je geen zorgen over het toewijzen van de objecteigenschap:

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



  1. Database-updates en beveiligingspatches eenvoudig beheren

  2. Hoe vind ik strings met overeenkomende letters in lijst/array met behulp van de lambda-functie?

  3. Problemen bij het installeren van Mongodb op Ubuntu 20.04

  4. Kan lokale mongo db . niet starten/starten