Skip to content

Database

Database 即底层类型 MbModelTool 的单例,用于访问 MarginNote 的笔记与文档数据。通过 Database.sharedInstance() 获取。修改数据后建议配合 UndoManagerundoGroupingWithRefresh 并调用 Application.refreshAfterDBChanged(topicid) 以刷新界面。

方法返回值说明
static sharedInstance()MbModelTool获取全局唯一的数据库工具实例。
方法参数返回值说明
getNoteById(noteId)noteId: stringMbBookNote | undefined根据笔记 ID 获取笔记。
getNotebookById(topicId)topicId: stringMbTopic | undefined根据笔记本 ID 获取笔记本。
getDocumentById(docMd5)docMd5: stringMbBook | undefined根据文档 MD5 获取文档。
getMediaByHash(hash)hash: stringNSData | undefined根据媒体哈希获取二进制数据。
getFlashcardByNoteId(noteId, topicId)笔记 ID、笔记本 ID单条笔记按 Evernote 笔记 ID 与笔记本获取闪卡。
getFlashcardsByNoteId(noteId)noteId: stringNSArray按 Evernote 笔记 ID 获取所有关联闪卡。
hasFlashcardByNoteId(noteId)noteId: stringboolean是否存在该 Evernote 笔记的闪卡。
allNotebooks()MbTopic[]所有笔记本。
allDocuments()MbBook[]所有文档。
savedb()void手动保存数据库到磁盘,慎用。
setNotebookSyncDirty(topicid)topicid: stringvoid将笔记本标记为同步脏(JS 名 setNotebookSyncDirty)。
saveHistoryArchive(topicid, key)笔记本 ID、键NSArray保存历史归档。
loadHistoryArchive(topicid, key)同上NSArray加载历史归档。
deleteBookNote(noteId)noteId: stringvoid删除单条笔记(不删子节点)。
deleteBookNoteTree(noteId)noteId: stringvoid删除笔记及其所有后代。
cloneNotes(notes, topicId)笔记数组、目标笔记本 IDNSArray将笔记克隆到指定笔记本。
cloneNotesToFlashcards(notes, topicId)同上NSArray将笔记克隆为闪卡到指定笔记本。
exportNotebook(topicid, storePath)笔记本 ID、存储路径boolean导出笔记本。
importNotebookFromStorePath(storePath, merge)路径、是否合并导入结果从路径导入笔记本。