簡體   English   中英

Mongodb-創建現有集合字段數組的條目

[英]Mongodb - Create entry to a extisting collection field array

因此,我在var array添加新章節時遇到問題,我將如何執行此操作:

array.push({
            chapter: [
                {
                    id: 2,
                    title: 'adsf',
                    content: '',
                    authorNotes: 'asdf'
                }
            ]
        });

RiTest.ts

import * as mongoose from 'mongoose';

const Scheme = mongoose.Schema;

export const RiTestScheme = new Scheme({
    novelName: String,
    novelAuthor: String,
    novelCoverArt: String,
    novelTags: Array,
    chapters: [
        {
            id: Number,
            title: String,
            content: String,
            authorNotes: String
        }
    ]
});

export class RiTestController {
    public addChapter(callback: (data) => void) {
        var chapterInfoModel = mongoose.model('ChaptersTest', RiTestScheme);

        var array = [
        {
            chapter: [
                {
                    id: 0,
                    title: 'prolog',
                    content: 'conetntt is empty',
                    authorNotes: 'nothing is said by author'
                },
                {
                    id: 1,
                    title: 'making a sword',
                    content: 'mine craft end chapter',
                    authorNotes: 'nothing'
                }
            ]
        }
    ];

        let newChapterInfo = new chapterInfoModel(array);

        newChapterInfo.save((err, book) => {
            if (err) {
                return callback(err);
            } else if (!err) {
                return callback(book);
            }
        });
    }
}

這行不通, var array不會保存到let newChapterInfo = new chapterInfoModel(array); 我正在嘗試做的事情將另外一章添加到array.chapter但是在chapterInfoModel()中無法識別該數組我該如何修復此數組並向該數組中添加項目以在此現有集合中創建一個新條目

感謝您抽出寶貴時間回答我的問題。

您正在嘗試將文檔數組插入到您的收藏夾中,這就是它沒有插入到您的收藏夾中的原因。

Document.prototype.save()將僅向您的集合中插入一個文檔,具體取決於您的定義。 因此,要插入chapter這里是下面的代碼,

//array as Object
var array = {
    chapter: [
        {
            id: 0,
            title: 'prolog',
            content: 'conetntt is empty',
            authorNotes: 'nothing is said by author'
        },
        {
            id: 1,
            title: 'making a sword',
            content: 'mine craft end chapter',
            authorNotes: 'nothing'
        }
    ]
};

//Push to your chapter array
array.chapter.push({
    id: 2,
    title: 'adsf',
    content: '',
    authorNotes: 'asdf'
});

let newChapterInfo = new chapterInfoModel(array);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM