0.0.11 • Published 5 years ago

mongo-adapt v0.0.11

Weekly downloads
2
License
MIT
Repository
-
Last release
5 years ago

mongo-adapt

对于 mongodb 的使用进行一个简单的封装。轻量化,没有做格式化验证。后续会不段的添加新的函数。

安装

npm install mongo-adapt

使用

连接 mongo

const MongoAdapt = require('mongo-adapt');
const mongoAdapt = new MongoAdapt(mongoConfig, indexes);

mongoConfig -- 连接到 mongo 的配置地址,必须是 Object 类型的。如下格式:

{
  "name1": "mongodb://192.168.1.70:27017/test"
}

如果是这样的, 则 key连接名,为每一个数据库连接取一个连接名,方便后续使用;value 为数据库连接地址,最好将常用的数据库放到连接地址上,这样就不需要在每一次使用的时候,都传递使用的数据库。

如果需要连接多个地址,则在配置里面继续添加。最先配置的作为默认使用的连接。

如果不想直接将数据库拼到连接地址上,也可以通过配置的形式进行分开。

{
  "name1": {
    "url": "mongodb://192.168.1.70:27017", // 数据库连接地址
    "db": "test" // 默认使用的数据库名称
  }
}

后续的对于数据库的操作包括增删改查(CRUD),则使用上面创建的 mongoAdapt;例如:

mongoAdapt.conn()
mongoAdapt.close()
mongoAdapt.find()
mongoAdapt.update()
mongoAdapt.delete()
mongoAdapt.aggregate()

indexes -- 在连接数据库成功后, 创建索引。如下格式:

{
  // name1 必须跟配置数据库连接时的 key 保持一致
  name1: [{
    db: 'workstation', // 数据库名称
    name: 'users', // 表名(collection)
    indexes: [{
      key: { tel: 1 },
      unique: true,
      background: true
    }] // 所有的索引 -- createIndexes()
  }]
}

关于里面的 indexes 字段, 详细参考:createIndexesindexSpecs; mongo-createIndexes是官方的明细。

接口说明

conn(mongoConfig)

进行数据库连接,默认的时候不需要调用该函数,因为在创建 MongoAdapt 已经调用过了;但是也可以自己手动调用该函数重新进行数据库连接。

close(clientName)

关闭某个数据库连接,clientName 就是进行数据库连接时的连接名。如果某个数据库连接只使用一次,可以使用该函数进行断开。一旦断开后,对于数据库的CRUD操作则不被允许。

closeAll()

断开所有的数据库连接。

db({})

获取数据库对象, 对应于 DB,参数如下:

  • client: String,数据库连接名
  • dbString,数据库名称

collection(connname, dbConfig)

获取数据集,对应于 Collection,参数如下:

  • connname: String,数据集的名称
  • dbConfigObject,调用 db({}) 函数的参数一致,包括 clientdb

insert(connname, docs, insertOptions, options)

往数据集中插入文档

  • connnameString,数据集的名称(connection name)
  • docsArray|Object,如果类型为 Array,则往数据集中插入多条数据,调用原生的 insertMany;否则插入一条文件,调用 insertOne
  • insertOptions:调用 insertManyinsertOne时的第二个参数;详情参考:insertManyinsertOne
  • options: Object{client, db},用于进行切换数据库时调用,如果使用默认的连接和数据库,则可以不传递该参数。

find(connname, query, findOptions, options)

查询多条文档,参考:find,其中 queryfindOptions 参数即为调用原生的 find(query, options) 时需要的参数

  • connnameString,数据集的名称(connection name)
  • query: Object,查询条件
  • findOptions: Object,查询的配置,这里面除了和原生的findoptions保持一致外,对了一个配置 page 表明查询第几页的数据,默认为 1,做分页查询时使用,这个时候,同时需要配置 limit 默认为 10
  • options: Object{client, db},用于进行切换数据库时调用,如果使用默认的连接和数据库,则可以不传递该参数。

findOne(connname, query, findOptions, options)

查询第一条匹配的文档,findOne

findById(connname, id, projection, options)

根据 id 查询文档,如果传递的参数 options.raw = true 则不会将 id 转换为 ObjectID 类型进行查找;否则在查询的时候会将 id 转换为 ObjectID 类型作为查询条件

  • optionsObject{client, db, raw}
    • rawBoolean,递的 id 是否需要转换为 ObjectId 类型,true 为不转换,false 为转换(默认)

count(connname, query, countOptions, options)

统计符合体条件的文档数量,参考:countDocuments

update(connname, filter, update, updateOptions, options)

更新文档,注意 update 参数需要 operator,参考:updateManyupdateOne

  • optionsObject{client, db, multi: true}
    • multiBoolean 是否更新多条文档,默认为true;区别是调用 updateMany 还是 updateOne

upset(connname, filter, doc, options|upsert)

更新文档,使用 $set 操作

  • docObject 更新文档字段内容
  • options|upsertoptions - Object | upsert - Boolean;如果值的类型为 Boolean 类型的,则表示传递的是 upsert 参数,使用的数据库连接为默认的,并且表示更新多条符合条件的记录;同时也支持对象形式参数 Object{ client, db, multi: true, upsert }

upsetById(connname, _id, doc, options|upsert)

根据 _id 修改文档, 使用 $set 操作符

  • _idString,不需要转换为 ObjectId 类型,会自动进行转换
  • optionsoptions - Object | upsert - Boolean;如果值的类型为 Boolean 类型的,则表示传递的是 upsert 参数,使用的数据库连接为默认的,并且 _id 将会转换为 ObjectId 类型;也支持参数为对象 Object{ client, db, raw, upsert }

delete(connname, filter, deleteOptions, options)

删除文档,详细:deleteManydeleteOne

deleteById(connname, _id, options)

根据 _id 删除文档

  • options: Object{ client, db, raw }

createIndex(connname, fieldOrSpec, indexOption, options)

创建索引, 详情参见文档:createIndex

createIndexes(connname, indexSpecs, options)

创建多条索引, 详细:createIndexes

aggregate(connname, pipeline, options)

执行管道操作,aggregate

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago