首页 > 数据库 >uniCloud-传统方式操作数据库

uniCloud-传统方式操作数据库

时间:2023-09-26 09:45:29浏览次数:43  
标签:name get res 数据库 db uniCloud let 操作 users

https://uniapp.dcloud.net.cn/uniCloud/cf-database.html#get-collection

前端代码
<template>
	<view class="db-demo">
		<button type="primary" @click="addUser">插入一条用户数据</button>
		<form @submit="onSubmit" class="user-form">
			<input type="text" name="name" v-model="user.name" placeholder="请输入用户名">
			<input type="text" name="tel" v-model="user.tel" placeholder="请输入电话">
			<button form-type="submit">将用户信息插入到数据库中</button>
		</form>

		<view class="user-names">
			<view class="row" v-for="item in userList">姓名:{{item.name}}</view>
		</view>
		
		<view class="kw">
			<input type="text" placeholder="请输入关键字,搜索用于" v-model="keyword">
			<button @click="getUsersList">搜索</button>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				user: {
					name: '',
					tel: ''
				},
				userList: [],
				keyword:""
			};
		},
		
		methods: {
			getUsersList() {
				uniCloud.callFunction({
					name: "getUsersName",
					data:{
						keyword:this.keyword
					},
					success: (res) => {
						console.log(res);
						this.userList=res.result.data
					},
					fail: (err) => {
						console.log(err);
					}
				})
			},
			addUser() {
				console.log("addUser()");
				uniCloud.callFunction({
					name: 'addUser',
					success: (res) => {
						console.log(res);
					},
					fail: (err) => {
						console.log(err);
					}
				})
			},
			onSubmit(e) {
				let obj = e.detail.value;
				if (obj.name == '') return
				console.log(obj);

				if (confirm("确认插入吗?")) {
					uniCloud.callFunction({
						name: "addUserByForm",
						data: e.detail.value,
						success: (res) => {
							console.log(res);
							this.user.name = ''
							this.user.tel = ''
						},
						fail: (err) => {
							console.log(err);
						}
					})
				}
			}
		}
	}
</script>

<style lang="less">
	.db-demo {
		width: 96%;
		margin: 10rpx auto;
	}
	.kw{
		margin: 20rpx auto;
	}
</style>

云函数代码:

'use strict';
exports.main = async (event, context) => {
	// 获取指定用户名称
	const db = uniCloud.database()
	// let res=await db.collection("users").doc("6511589bf08210d5151b5dec").get()
	// let res=await db.collection("users").limit(3).get() //只获取3条
	// let res=await db.collection("users").limit(2).skip(2).get() //只获取2条,从第2页开始
	// skip和limit同时使用,用于数据分页

	// let res=await db.collection("users").orderBy("_id","asc").get()  // 默认 按id升序排列
	// let res=await db.collection("users").orderBy("_id","desc").limit(4).get()  // 按id降序排列
	// let res=await db.collection("users").field("name",true).get() //只查询name和默认的_id字段.

	// where条件查询
	// let res=await db.collection("users").where({
	// 	age:17,
	// 	name:"石磊" //对象里可以写多个查询条件
	// }).get()

	// 查询年龄大于等于18岁的
	/*const dbCmd = db.command;
	let res = await db.collection("users").where({
		// age: dbCmd.gt(17).and(dbCmd.lt(20))  // 获取users表中年龄大于17岁且小于20岁的女性用户
		// age:dbCmd.and(dbCmd.gt(17),dbCmd.lt(20)),  // 等价上面写法
		age: dbCmd.or(dbCmd.lt(18), dbCmd.gt(22)) // 查找年龄小于18的,或者大于22的用户
		// gender:"女"
	}).get() */

	let { keyword }=event
	// 正则表达式查询
	let res = await db.collection("users").where({
		// name: /^王/ig  //只查找姓王的用户
		name:new  RegExp(keyword,'ig')
	}).get()

	//返回数据给客户端
	return res
};

标签:name,get,res,数据库,db,uniCloud,let,操作,users
From: https://www.cnblogs.com/unity-yancy/p/17729401.html

相关文章

  • 4.操作卡片和OBU的指令以及流程
     用户卡认证命令流1、获取随机数:00840000042、进入1001目录:00A400000210013、读15文件:00B095002B4、计算mac:00880201+10(1字节数据长度)+16字节摘要码操作IC卡片(读15文件,卡基本信息)1、选1001:00A400000210012、读15文件:00B095002B操作IC卡片(写15文件,卡基......
  • 【TinyWebServer】11数据库连接池
    基础知识什么是数据库连接池?池是一组资源的集合,这组资源在服务器启动之初就被完全创建好并初始化。通俗来说,池是资源的容器,本质上是对资源的复用。顾名思义,连接池中的资源为一组数据库连接,由程序动态地对池中的连接进行使用,释放。当系统开始处理客户请求的时候,如果它需要相关......
  • 3.PSAM卡操作
    0082008400C0008800B000B200A400/04D600/04DC002000B0读二进制文件00B096000600B0标识96文件标识00起始位置06读取长度00A4选择文件目录00A4000002DF01选DF01目录00A4标识00固定00固定02固定DF01目录名称801A秘钥分散801A590310FF......
  • Oracle数据库同时建立和使用两个监听器
    1.问题我分别对两个数据库实例(Lib和Orcl)各自建立了一个监听器,端口号分别为1520和1521,但是默认只启动一个,导致我切换数据库实例的时候,出现以下问题:状态:失败-测试失败:IO错误:TheNetworkAdaptercouldnotestablishtheconnection(CONNECTION_ID=eWHa4AMrRfy8g/bXkm9lw......
  • 亚信科技AntDB数据库与优逸派科技基于人工智能的自动化运维管理平台产品完成兼容性互
    日前,亚信科技AntDB数据库与北京优逸派科技有限公司基于人工智能的自动化运维管理平台产品完成兼容互认。经过双方团队的严格测试,AntDB数据库与基于人工智能的自动化运维管理平台产品完全兼容,整体运行稳定高效。图1:亚信科技AntDB数据库与优逸派科技完成适配随着我国数字经济建设......
  • uniCloud初识
    uniCloud是什么?uniCloud是DCloud联合阿里云、腾讯云,为开发者提供的基于serverless模式和js编程的云开发平台onLoad(){//前端不再用uni.request请求数据,而是调用云函数拿数据. uniCloud.callFunction({ name:"get_content", data:{ num:3}//前端传递给服务......
  • 【Azure App Services】多次操作App Service伸缩实例遇见限制操作记录
    问题描述多次操作AppServices,进行实例数的变化。达到限制后遇见报错:错误的具体描述为:{"status":"Failed","error":{"code":"Conflict","message":"Youhaveexceededthemaximumamountofscalechange......
  • MYSQL数据库SQL-删除
    1、deleteDelete删除表数据,保留表结构,且可以加where,删除一行或多行支持回滚操作既可以删除表也可以删除视图,truncate只能删除表不能删除视图(1)删除某张表中某个字段为'xxx'的行deletefrom表名where字段名='xxx'(2)删除整张表deletefrom表名不跟where条件时删......
  • 基于weka的数据库挖掘➖分类方法的实现
    基于weka的数据库挖掘➖分类方法的实现关于作者作者介绍......
  • 活动预告 | 中国数据库联盟(ACDU)中国行第三站定档成都,邀您探讨数据库前沿技术
    数据库技术一直是信息时代中不可或缺的核心组成部分,随着信息量的爆炸式增长和数据的多样化,其重要性愈发凸显。作为中国数据库联盟(ACDU)的品牌活动之一,【ACDU中国行】在线下汇集数据库领域的行业知名人士,共同探讨数据库前沿技术及其应用,促进行业发展和创新,同时也为开发者们提供一个......