https://github.com/leinue/mongobro
A NoSQL database in browsers(like MongoDB).
https://github.com/leinue/mongobro
Last synced: over 1 year ago
JSON representation
A NoSQL database in browsers(like MongoDB).
- Host: GitHub
- URL: https://github.com/leinue/mongobro
- Owner: leinue
- Created: 2015-09-21T14:51:33.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2015-11-21T15:59:57.000Z (over 10 years ago)
- Last Synced: 2025-03-27T21:24:12.472Z (over 1 year ago)
- Language: HTML
- Homepage: http://mb.ivydom.com/
- Size: 95.7 KB
- Stars: 6
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
MongoBro开发文档
Mongobro Databases MongoDB NoSQL
-
MongoBro开发文档
-
MongoBro 可视化工具
-
MongoBro API
-
-
API索引
- mongoBro函数原型
- broadcastMongoDbUpdated *
- broadcastMongoDbNoUpdated *
- getDatabases
- getMongoCount
- isMongoNull
- getMongoObj
- isDbExists
- writeMongoObj *
- createDB
- updateDB
- isExists
- use
- getCurrentDBName
- setCurrentDBName
- removeDB
- removeAllDatabases
- isTableNull
- writeMongoTableDB *
- addTableList *
- removeTableList *
- removeAlltableList *
- updateTableList *
- getTableList *
- isTableUpdated *
- broadcastMongoDbTableUpdated *
- broadcastMongoDbTableNoUpdated *
- createTable
- isTableExists
- updateTable
- removeTable
- getTableByDBName
- getTableCollection
- getTableCollectionBy *
- getTableCollectionById *
- removeTableCollection
- updateTableCollection
- updateTCByObject *
- getObjLength *
- insertTableCollection
- getObjKey *
- getTableKey *
- addTableKey
- API使用示例
-
拓展阅读
1. MongoBro 介绍
MongoBro是一个基于HTML5 localStorage技术的小型Web端数据库系统, 他的整体开发思想来源于MongoDB, 但并不完全是NoSQL类型数据库, 它同样支持传统数据库系统如MySQL中的表和字段.
MongoBro的核心代码仅729行,若加上设计器也仅3000行,非常简单易用.
MongoBro 可视化工具
我们提供了一整套MongoBro的在线开发工具, 目前还在不断完善中
- 主界面

1. 终端
MongoBro的终端主要用来执行一些用户交互上起来比较麻烦的操作, 比如对表字段的增删查改, 对全部数据库的删除等. 基本上保持了和Linux命令行一致的体验, 当然个别地方还有待完善.
- 终端界面

- 终端使用
-
快捷键
使用Ctrl + Alt + Space呼出终端, 再次按下关闭终端
-
右上角按钮
右上角按钮有三种类型:
- 隐藏窗口
- 放大窗口
- 关闭窗口
-
标题栏
双击标题栏即可放大终端窗口
- 终端命令
-
帮助指令
- help 或 h : 输出系统当前支持的所有命令(有些命令为系统内部命令, 即使显示也不可使用)
- help [Command name] : 输出[Command name]的源代码

-
数据库操作指令
- add : 向指定数据库中的数据表添加字段, 用法如下:
add key to TABLE_NAME in DBNAME set FIELDS_LIST values [VALUES_LIST]
其中的TABLE_NAME为表名;DBNAME为数据库名; FIELDS_LIST为字段列表, 其格式为字段1, 字段2 ,字段3, ..., 字段N, FIELDS_LIST不可省略;VALUES_LIST为值列表, 格式为值1, 值2 ,值3, ..., 值N, VALUES_LIST可省略;
如果我要在DBNAME为mongo的数据库中向TABLE_NAME为ivydom的表插入3个字段且默认值为fuck, 则其指令如下:
add key to ivydom in mongo set f1,f2,f3 values v1,v2,v3
- remove : remove目前只有一个参数, all, 即删除所有数据库和数据表(慎用)
remove all
- rollback : 如果您不小心删了数据库, 那么我们提供了rollback方法帮助您恢复数据(注意不是您原本的数据, 而是一些测试数据, 这个方法本是为了方便调试而开发的).
rollback
- exit : 和linux ssh中的exit命令一样, 退出当前终端
exit
2. 用户交互界面
- 主界面
-





MongoBro API
本部分将帮助您在实际应用中使用MongoBro, 以上内容只是帮助您体验MongoBro.
API索引
要使用MongBro, 只需要使用mongoBro类即可.MongoBro提供了42个方法供调用;
内部调用函数全部打*号,系统内部方法不建议调用,若不慎调用请使用removeAllDatabases恢复系统;
以下API全部继承自MongoBro;
mongoBro中的方法若无特殊说明则执行成功返回mongoBro自身(即支持链式调用),失败返回false
mongoBro函数原型
function mongoBro(){
if(!this.isMongoNull()){
}else{
localStorage.MongoBrowserDB = '';
}
}
broadcastMongoDbUpdated *
mongoBro.prototype.broadcastMongoDbUpdated = function(){}
- 功能
-
通知系统Mongobro的数据库已经更新
此函数为系统内部函数,用户了解即可
broadcastMongoDbNoUpdated *
mongoBro.prototype.broadcastMongoDbNoUpdated = function(){}
- 功能
-
通知系统Mongobro的数据库已经更新完毕
此函数为系统内部函数,用户了解即可
getDatabases
mongoBro.prototype.getDatabases = function(){}
- 功能
- 获得系统中存在的所有数据库,返回数组,若无返回空数组
getMongoCount
mongoBro.prototype.getMongoCount = function(){}
- 功能
- 获得系统中所有数据库的个数
isMongoNull
mongoBro.prototype.isMongoNull = function(){}
- 功能
- 判断系统中是否已有数据库
getMongoObj
mongoBro.prototype.getMongoObj = function(){}
- 功能
- getDatabases的原型实现
isDbExists
mongoBro.prototype.isDbExists = function(dbname){}
- 功能
- 判断dbname是否存在,存在返回true,否则返回false
writeMongoObj *
mongoBro.prototype.writeMongoObj = function(str){}
- 功能
-
将str写回到localStorage中
此函数为系统内部函数,用户了解即可
createDB
mongoBro.prototype.createDB = function(dbname){}
- 功能
- 创建数据库名为dbname的数据库
updateDB
mongoBro.prototype.updateDB = function(original_name,new_name){}
- 功能
- 更改数据库名为original_name的数据库为original_name
isExists
mongoBro.prototype.isExists = function(){}
- 功能
- isDBExists的原型实现
use
mongoBro.prototype.use = function(dbname){}
- 功能
- 使用数据库dbname, 调用此函数后系统会记录当前数据库为用户指定的数据库
getCurrentDBName
mongoBro.prototype.getCurrentDBName = function(){}
- 功能
- 获得当前的数据库名
setCurrentDBName
mongoBro.prototype.setCurrentDBName = function(dbname){}
- 功能
-
设置当前数据库名,为use的底层实现
此函数为系统内部函数,用户了解即可
removeDB
mongoBro.prototype.removeDB = function(dbname){}
- 功能
- 删除数据库名为dbname的数据库
removeAllDatabases
mongoBro.prototype.removeAllDatabases = function(){}
- 功能
- 清空系统中存在的所有数据库
isTableNull
mongoBro.prototype.isTableNull = function(){}
- 功能
- 判断当前数据表是否为空
writeMongoTableDB *
mongoBro.prototype.writeMongoTableDB = function(obj){}
- 功能
-
将数据表数据写回到localStorage
此函数为系统内部函数,用户了解即可
addTableList *
mongoBro.prototype.addTableList = function(database,tableName){}
- 功能
-
系统内部记录当前的数据库,数据表信息
此函数为系统内部函数,用户了解即可
removeTableList *
mongoBro.prototype.removeTableList = function(database,tableName){}
- 功能
-
系统内部记录数据库,数据表信息的删除操作
此函数为系统内部函数,用户了解即可
removeAlltableList *
mongoBro.prototype.removeAlltableList = function(){}
- 功能
-
删除系统内部数据库,数据表记录信息
此函数为系统内部函数,用户了解即可
updateTableList *
mongoBro.prototype.updateTableList = function(dbname,oldName,newName){}
- 功能
-
系统内部记录数据库,数据表信息的更新操作
此函数为系统内部函数,用户了解即可
getTableList *
mongoBro.prototype.getTableList = function(){}
- 功能
-
获取系统内部记录数据库,数据表信息
此函数为系统内部函数,用户了解即可
isTableUpdated *
mongoBro.prototype.isTableUpdated = function(){}
- 功能
-
获得系统内部表是否更新
此函数为系统内部函数,用户了解即可
broadcastMongoDbTableUpdated *
mongoBro.prototype.broadcastMongoDbTableUpdated = function(){}
- 功能
-
通知系统数据表已更新
此函数为系统内部函数,用户了解即可
broadcastMongoDbTableNoUpdated *
mongoBro.prototype.broadcastMongoDbTableNoUpdated = function(){}
- 功能
-
通知系统数据表已更新完毕
此函数为系统内部函数,用户了解即可
createTable
mongoBro.prototype.createTable = function(dbname,tableName,data){}
- 功能
- 创建数据库名为dbname,数据表为tableName,数据为data的数据表
dbanme: 数据库名
tableName: 数据表名
data: 要加入的数据(数组)
如果dbname不存在, 则返回false;
如果tableName为空, 则返回false;
若执行成功, 则返回mongoBro
isTableExists
mongoBro.prototype.isTableExists = function(dbname,tableName){}
- 功能
- 判断数据表是否存在,若存在则返回true,否则返回false
updateTable
mongoBro.prototype.updateTable = function(dbname,oldName,newName){}
- 功能
- 更新数据库名
dbname: 数据库名
oldName: 旧名字
newName: 新名字
执行失败返回false,执行成功返回mongoBro
removeTable
mongoBro.prototype.removeTable = function(dbname,tableName){}
- 功能
- 删除数据表
dbane: 数据库名
tableName: 数据表名
执行失败返回false,执行成功返回mongoBro
getTableByDBName
mongoBro.prototype.getTableByDBName = function(dbanme){}
- 功能
- 获得某数据库下的所有数据表
dbname: 数据库名
执行失败返回false,执行成功返回数据表列表(数组)
getTableCollection
mongoBro.prototype.getTableCollection = function(tableName){}
- 功能
- 获得某数据表的所有记录
tableName: 数据表名
执行失败返回false,执行成功返回记录列表(数组)
getTableCollectionBy *
mongoBro.prototype.getTableCollectionBy = function(dbname, tableName, key, val, like){}
- 功能
-
查询数据表中的某字段
dbname: 数据库名
tableName: 数据表名
key: 要查询的字段
val: 字段对应的值
like: 是否启用模糊搜索
执行成功返回对应的数组,否则返回false
此函数为系统内部函数,用户了解即可
getTableCollectionById *
mongoBro.prototype.getTableCollectionById = function(dbname, tableName, val){}
- 功能
-
根据表ID查询数据表中的某字段
dbname: 数据库名
tableName: 数据表名
key: 要查询的字段
执行成功返回对应的数组,否则返回false
此函数为系统内部函数,用户了解即可
removeTableCollection
mongoBro.prototype.removeTableCollection = function(dbname, tableName, id){}
- 功能
- 删除某数据库中的某数据表中某id的记录
dbname: 数据库名
tableName: 数据表名
id: id值
执行成功返回mongoBro, 失败返回false
updateTableCollection
mongoBro.prototype.updateTableCollection = function(dbname, tableName, id, collectionName, value){}
- 功能
- 更新数据表中的某条记录
dbname: 数据库名
tableName: 数据表名
id: 主键值
collectionName: 字段名
value: 新的值
updateTCByObject *
mongoBro.prototype.updateTCByObject = function(dbname, tableName, id, obj){}
- 功能
-
通过对象方式更新集合
dbname: 数据库名
tableName: 数据表名
id: 主键值
obj: 数组对象
执行成功返回mongoBro, 失败返回false
此函数为系统内部函数,用户了解即可
getObjLength *
mongoBro.prototype.getObjLength = function(o){}
- 功能
-
当无法通过obj.length获取对象长度时调用此函数获得长度
o: 对象
此函数为系统内部函数,用户了解即可
insertTableCollection
mongoBro.prototype.insertTableCollection = function(dbname, tableName, data, isAddKey){}
- 功能
- 向数据表中新增字段
dbname: 数据库名
tableName: 数据表明
data: 数据
isAddKey: 是否是新增字段
如果isAddkey为假则新增一条记录,否则只是更新字段
执行成功返回mongoBro, 失败返回false
getObjKey *
mongoBro.prototype.getObjKey = function(obj){}
- 功能
-
获得对象的键值(即字段名)
obj: 对象
此函数为系统内部函数,用户了解即可
getTableKey *
mongoBro.prototype.getTableKey = function(tableCollection){}
- 功能
-
获得数据表数据中的所有键值
tableCollection: 数据表中的数据
此函数为系统内部函数,用户了解即可
addTableKey
mongoBro.prototype.addTableKey = function(dbname, tableName, keyList, valueList){}
- 功能
- 向表中增加字段
dbname: 数据库名
tableName: 数据表名
keyList: 键列表
valueList: 值列表
执行成功返回mongoBro,失败返回false
API使用示例
mongoBro.removeAllDatabases();
console.log(mongoBro.createDB('test').getDatabases());
console.log(mongoBro.createDB('fuck').getDatabases());
console.log(mongoBro.updateDB('fuck','bitch').getDatabases());
console.log(mongoBro.getCurrentDBName());
console.log(mongoBro.removeDB('bitch').getDatabases());
console.log(mongoBro.use('test').getCurrentDBName());
console.log(mongoBro.createTable('test','person').getTableCollection('person'));
console.log(mongoBro.getTableList());
console.log(mongoBro.createTable('test','xieyang',
[{
name : 'xieyang',
sex : 'malemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemalemale'
},{
name: 'lanjia',
sex: 'male'
}]).getTableCollection('xieyang'));
var tableInTest = mongoBro.getTableByDBName('test');
console.log(tableInTest);
console.log('输出test数据库中的表数据');
for (var i = 0; i < tableInTest.length; i++) {
console.log(mongoBro.getTableCollection(tableInTest[i]));
};
console.log('向test表中插入数据');
console.log(mongoBro.insertTableCollection('test', 'xieyang', {
name: 'hh',
sex: '233'
}));
console.log('更新test表数据库名为xieyang中主键为1的name字段');
console.log(mongoBro.updateTableCollection('test', 'xieyang', 1, 'name', 'xuqianying').getTableList());
console.log('更新test表数据库名为xieyang中主键为2的name字段');
console.log(mongoBro.updateTableCollection('test', 'xieyang', 2, 'name', 'xieyang').getTableList());
console.log('以对象的方式修改test表中数据库名为xieyang中主键为2的集合');
console.log(mongoBro.updateTCByObject('test', 'xieyang', 1, {
name: '蛤蛤',
sex: 'LGBT'
}));
console.log('修改person表的名称');
console.log(mongoBro.updateTable('test','person','person_edit2').getTableList());
if(remove) {
console.log(mongoBro.removeTable('test','person_edit2').getTableList());
}
输出结果如下:

拓展阅读
MongoBro刚问世,功能还在不断完善中,期待您的使用和建议!
1. MongoBro 官网
2. MongoBro GitHub
3. MongoBro 开发者博客