MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Запазване на масив (от „тагове“) в MongoDB с помощта на Mongoose

Ако наистина искате вашият масив "tags" да има поле за име и генериран _id след това дефинирайте друга схема и я вградете:

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

След това манипулирайте входа към правилната структура, преди да създадете Post обект:

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

var post = new Post(req.body);

Или просто го оставете като масив от обикновени низове:

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

И не се притеснявайте за съпоставяне на свойството на обекта:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да използвате mongoimport за импортиране на csv

  2. Mongoose Model.find не е функция?

  3. Как да заредите множество js файлове в база данни с помощта на mongo shell?

  4. mongo - не можа да се свърже със сървър 127.0.0.1:27017

  5. Неуспешно обработване на MongoDB при вмъкване в Java