sql >> データベース >  >> NoSQL >> MongoDB

Mongooseを使用して('タグ'の)配列をMongoDBに保存する

    「タグ」配列に名前フィールドと生成された_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. MongoDBの配列内のアイテムのインデックスを取得します

    2. MongoEngine:EmbeddedDocument v/s。 ReferenceField

    3. MongoDBシェルのISODateへの日数の加算/減算

    4. マングース/モンゴの用語について混乱しています。 Sub-Docs / Embedded-Docsもコレクションですか?