微信小程序 云开发 数据库操作的一个云函数
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
/**
* 删除数组中的某一个对象
* @param arr {Array} 数组
* @param obj {Object} 需要删除的对象
* @returns {Array} 处理之后的数组
*/
const arrRemoveObj = (arr, obj) => {
let len = arr.length;
for (let i = 0; i < len; i++) {
if (arr[i] === obj) {
if (i === 0) {
arr.shift();
return arr;
} else if (i === len - 1) {
arr.pop();
return arr;
} else {
arr.splice(i, 1);
return arr;
}
}
}
};
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
var errMsg = ""
var result = []
const sheet = event.sheet //表名
const _ = db.command
//获取集合的引用
const todos = db.collection(sheet)
const type = event.type //增删改查 select remove set update add
console.log(sheet)
console.log(type)
/***************数据库增加操作*************** */
if (type === "add") {
const data = event.data
//增加记录操作
await todos.add({
data: data
}).then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
/*****************数据直接修改字段********************** */
if (type === "modfield") {
//对象操作 operadata {field opera data } oprea:add 数值相加 push 数组追加 set 是更改值 //暂不设计删除数组的功能
//operadata 是一个数组
console.log("modfield")
let operadata = event.operadata
let selectId = event.selectId
let UpdateData = {}
for (let i = 0; i < operadata.length; ++i) {
// //遍历key和value
// const keys = Object.keys(cg_arr)
// keys.forEach(function (item,key) {
// console.log("item:" + item,"value:"+cg_arr[item])
let dealMth = operadata[i]
console.log("deal Method", dealMth)
let field = dealMth.field
let opera = dealMth.opera
let data = dealMth.data
if (opera === "add") {
UpdateData[field] = _.inc(Number(data))
} else {
if (opera === "push") {
UpdateData[field] = _.push(data)
} else {
if (opera === "set") {
UpdateData[field] = _.set(data)
}
else{
if(opera==="unshift"){
UpdateData[field] = _.unshift(data)
}
else{
if(opera==="shift"){
UpdateData[field] = _.shift()
}
else{
if(opera==="pop"){
UpdateData[field] = _.pop()
}
else{
}
}
}
}
}
}
}
console.log("updateData", UpdateData)
let data = {}
data.data = UpdateData
data.success = function (res) {
console.log(res.data)
}
console.log("data", data)
todos.doc(selectId).update(data).then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
/******************数据库查询操作************************ */
if (type === "select") {
//where field limit orderBy skip
const skip = event.skip
const limit = event.limit
const orderByField = event.orderByField
const orderByOrder = event.orderByOrder
const fields = event.fields
const whereContent = event.whereContent
var isSkip = false
if (event.isSkip)
isSkip = true
var isLimit = false
if (event.isLimit)
isLimit = true
var isOrderBy = false
if (event.isOrderBy)
isOrderBy = true
var isFields = false
if (event.isFields)
isFields = true
//查询数据库操作
var isSelectId = false
if (event.isSelectId)
isSelectId = true
var isWhere = false
if (event.isWhere)
isWhere = true
if (isWhere) {
//利用id 查询唯一一条记录
if (isSelectId) {
if (isOrderBy) {
if (isFields) {
console.log("jin isfields selectID")
const selectId = event.selectId
await todos.doc(selectId).orderBy(orderByField, orderByOrder).field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
console.log("jin selectID")
const selectId = event.selectId
await todos.doc(selectId).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
if (isFields) {
console.log("jin isfields selectID")
const selectId = event.selectId
await todos.doc(selectId).field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
console.log("jin selectID")
const selectId = event.selectId
await todos.doc(selectId).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
} else {
console.log("非 selectID")
if (isSkip) {
//skip
if (isLimit) {
//skip limit
if (isFields) {
//skip limit fields
if (isOrderBy) {
//skip limit fields orderBy
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).limit(limit).field(fields).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip limit fields !orderBy
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).limit(limit).field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip limit !fields
if (isOrderBy) {
//skip limit !fields orderBy
await todos.where(whereContent).skip(skip).limit(limit).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip limit !fields !orderBy
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).limit(limit).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
} else {
//skip !limit
if (isFields) {
//skip !limits fields
if (isOrderBy) {
//skip !limit fields orderBy
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).field(fields).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip !limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip !limits !fields
if (isOrderBy) {
//skip !limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip !limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
}
} else {
//skip
if (isLimit) {
//skip limit
if (isFields) {
//skip limit fields
if (isOrderBy) {
// !skip limit fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).limit(limit).field(fields).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).limit(limit).field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//!skip limit !fields
if (isOrderBy) {
//!skip limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).limit(limit).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).limit(limit).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
} else {
//!skip !limit
if (isFields) {
//!skip !limits fields
if (isOrderBy) {
//!skip !limit fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).field(fields).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip !limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip !limits !fields
if (isOrderBy) {
//!skip !limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip !limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
}
}
}
} else {
//利用id 查询唯一一条记录
if (isSelectId) {
if (isOrderBy) {
if (isFields) {
console.log("jin isfields selectID")
const selectId = event.selectId
await todos.doc(selectId).orderBy(orderByField, orderByOrder).field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
console.log("jin selectID")
const selectId = event.selectId
await todos.doc(selectId).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
if (isFields) {
console.log("jin isfields selectID")
const selectId = event.selectId
await todos.doc(selectId).field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
console.log("jin selectID")
const selectId = event.selectId
await todos.doc(selectId).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
} else {
console.log("非 selectID")
if (isSkip) {
//skip
if (isLimit) {
//skip limit
if (isFields) {
//skip limit fields
if (isOrderBy) {
//skip limit fields orderBy
const whereContent = event.whereContent
await todos.skip(skip).limit(limit).field(fields).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip limit fields !orderBy
const whereContent = event.whereContent
await todos.skip(skip).limit(limit).field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip limit !fields
if (isOrderBy) {
//skip limit !fields orderBy
await todos.skip(skip).limit(limit).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip limit !fields !orderBy
const whereContent = event.whereContent
await todos.skip(skip).limit(limit).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
} else {
//skip !limit
if (isFields) {
//skip !limits fields
if (isOrderBy) {
//skip !limit fields orderBy
const whereContent = event.whereContent
await todos.skip(skip).field(fields).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip !limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.skip(skip).field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip !limits !fields
if (isOrderBy) {
//skip !limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.skip(skip).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip !limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.skip(skip).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
}
} else {
//skip
if (isLimit) {
//skip limit
if (isFields) {
//skip limit fields
if (isOrderBy) {
// !skip limit fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.limit(limit).field(fields).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.limit(limit).field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//!skip limit !fields
if (isOrderBy) {
//!skip limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.limit(limit).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.limit(limit).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
} else {
//!skip !limit
if (isFields) {
//!skip !limits fields
if (isOrderBy) {
//!skip !limit fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.field(fields).orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip !limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.field(fields).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip !limits !fields
if (isOrderBy) {
//!skip !limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.orderBy(orderByField, orderByOrder).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip !limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
}
}
}
}
}
/**********************数据库数目统计********************** */
if (type === "count") {
console.log("execCount")
//where field limit orderBy skip
const skip = event.skip
const limit = event.limit
const orderByField = event.orderByField
const orderByOrder = event.orderByOrder
const fields = event.fields
const whereContent = event.whereContent
var isSkip = false
if (event.isSkip)
isSkip = true
var isLimit = false
if (event.isLimit)
isLimit = true
var isOrderBy = false
if (event.isOrderBy)
isOrderBy = true
var isFields = false
if (event.isFields)
isFields = true
//查询数据库操作
var isSelectId = false
if (event.isSelectId)
isSelectId = true
var isWhere = false
if (event.isWhere)
isWhere = true
if (isWhere) {
//利用id 查询唯一一条记录
if (isSelectId) {
console.log("jin selectID")
const selectId = event.selectId
await todos.doc(selectId).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
console.log("非 selectID")
if (isSkip) {
//skip
if (isLimit) {
//skip limit
if (isFields) {
//skip limit fields
if (isOrderBy) {
//skip limit fields orderBy
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).limit(limit).field(fields).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip limit fields !orderBy
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).limit(limit).field(fields).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip limit !fields
if (isOrderBy) {
//skip limit !fields orderBy
await todos.where(whereContent).skip(skip).limit(limit).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip limit !fields !orderBy
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).limit(limit).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
} else {
//skip !limit
if (isFields) {
//skip !limits fields
if (isOrderBy) {
//skip !limit fields orderBy
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).field(fields).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip !limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).field(fields).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip !limits !fields
if (isOrderBy) {
//skip !limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip !limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).skip(skip).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
}
} else {
//skip
if (isLimit) {
//skip limit
if (isFields) {
//skip limit fields
if (isOrderBy) {
// !skip limit fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).limit(limit).field(fields).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).limit(limit).field(fields).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//!skip limit !fields
if (isOrderBy) {
//!skip limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).limit(limit).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).limit(limit).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
} else {
//!skip !limit
if (isFields) {
//!skip !limits fields
if (isOrderBy) {
//!skip !limit fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).field(fields).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip !limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).field(fields).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip !limits !fields
if (isOrderBy) {
//!skip !limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip !limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
}
}
}
} else {
//利用id 查询唯一一条记录
if (isSelectId) {
console.log("jin selectID")
const selectId = event.selectId
await todos.doc(selectId).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
console.log("非 selectID")
if (isSkip) {
//skip
if (isLimit) {
//skip limit
if (isFields) {
//skip limit fields
if (isOrderBy) {
//skip limit fields orderBy
const whereContent = event.whereContent
await todos.skip(skip).limit(limit).field(fields).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip limit fields !orderBy
const whereContent = event.whereContent
await todos.skip(skip).limit(limit).field(fields).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip limit !fields
if (isOrderBy) {
//skip limit !fields orderBy
await todos.skip(skip).limit(limit).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip limit !fields !orderBy
const whereContent = event.whereContent
await todos.skip(skip).limit(limit).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
} else {
//skip !limit
if (isFields) {
//skip !limits fields
if (isOrderBy) {
//skip !limit fields orderBy
const whereContent = event.whereContent
await todos.skip(skip).field(fields).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip !limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.skip(skip).field(fields).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip !limits !fields
if (isOrderBy) {
//skip !limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.skip(skip).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//skip !limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.skip(skip).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
}
} else {
//skip
if (isLimit) {
//skip limit
if (isFields) {
//skip limit fields
if (isOrderBy) {
// !skip limit fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.limit(limit).field(fields).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.limit(limit).field(fields).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//!skip limit !fields
if (isOrderBy) {
//!skip limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.limit(limit).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.limit(limit).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
} else {
//!skip !limit
if (isFields) {
//!skip !limits fields
if (isOrderBy) {
//!skip !limit fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.field(fields).orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip !limit fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.field(fields).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
} else {
//skip !limits !fields
if (isOrderBy) {
//!skip !limit !fields orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.orderBy(orderByField, orderByOrder).count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//!skip !limit !fields !orderBy
//利用 where 条件查找
const whereContent = event.whereContent
await todos.count().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
}
}
}
}
}
//console.log("一个也没进")
/*********************数据库记录更新操作****************************************** */
if (type === "update") {
//查询数据库操作
var isWhere = false
if (event.isWhere)
isWhere = true
const isSelectId = event.isSelectId
if (isSelectId) {
const selectId = event.selectId
console.log("is select id",selectId)
const data = event.data
console.log("is select id data",data)
await todos.doc(selectId).update({
data: data
}).then(res => {
console.log("docthen", res)
result = res
errMsg = res.errMsg
})
.catch(res => {
console.log("doccatch", res)
result = res
errMsg = res.errMsg
})
} else {
//多个
//利用 where 条件查找
if (!isWhere) {
const data = event.data
await todos.update({
data: data
}).then(res => {
console.log("docthen", res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log("doccat", res)
result = res
errMsg = res.errMsg
})
} else {
const whereContent = event.whereContent
const data = event.data
await todos.where(whereContent).update({
data: data
}).then(res => {
console.log("docthen", res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log("doccat", res)
result = res
errMsg = res.errMsg
})
}
}
}
/*****************数据库记录替换操作************************ */
if (type === "set") {
const selectId = event.selectId
const data = event.data
await todos.doc(selectId).set({
data: data
})
}
/******************数据库记录删除操作*********************************** */
if (type === "remove") {
//查询数据库操作
const isSelectId = event.isSelectId
console.log("isSelect", isSelectId)
//利用id 查询唯一一条记录
if (isSelectId) {
const selectId = event.selectId
console.log("selectID", selectId)
await todos.doc(selectId).remove().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
} else {
//利用 where 条件查找
const whereContent = event.whereContent
await todos.where(whereContent).remove().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
}
}
//数据库模糊查找
if (type === "like") {
let value = event.value
let fields = event.fields
console.log("like value", value)
console.log("like fields", fields)
await todos.where(_.or(fields)).get().then(res => {
console.log(res)
result = res
errMsg = res.errMsg
}).catch(res => {
console.log(res)
result = res
errMsg = res.errMsg
})
//console.log("or OBJ",orObj)
}
//console.log("err",errMsg)
//console.log("result:")
//console.log("result:")
console.log("result:", result)
return await {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
dataInfo: result,
errMsg: errMsg
}
}
版权声明:本文为dododododoooo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。