//#region 使用案例

//创建数据库,并添加索引

// db.version(1).stores({  
//   users: "++id,name,age,[age]" // 为age字段添加索引  
// });

//import { db} from '@project/db.js'

//条件更新
//await db.messages.where({ name: "John" }).modify({ age: 30 });

//新增1条数据
//await  db.messages.add(obj)

//修改1条数据 要带上主键 如id
//await  db.messages.put(obj)

//删除数据
//await  db.messages.delete(key)

//查询数据
//return await db.messages.get(key)

// 大于
// db.users.where('age').above(25).toArray().then(users => {  
//   console.log(users); // 输出所有年龄大于25岁的用户列表  
// }).catch(error => {  
//   console.error("Error fetching users:", error);  
// });

//大于等于(>=)
// db.users.where('age').aboveOrEqual(25).toArray().then(users => {  
//   console.log(users); // 输出所有年龄大于等于25岁的用户列表  
// }).catch(error => {  
//   console.error("Error fetching users:", error);  
// });

//小于等于(<=)
// db.users.where('age').belowOrEqual(30).toArray().then(users => {  
//   console.log(users); // 输出所有年龄小于等于30岁的用户列表  
// }).catch(error => {  
//   console.error("Error fetching users:", error);  
// });

//模糊查询
// db.users.where('name').startsWith('Jo').toArray().then(users => {  
//   console.log(users); // 输出所有名字以'Jo'开头的用户列表  
// }).catch(error => {  
//   console.error("Error fetching users:", error);  
// });

// db.users.where('name').contains('ohn').toArray().then(users => {  
//   console.log(users); // 输出所有名字中包含'ohn'的用户列表  
// }).catch(error => {  
//   console.error("Error fetching users:", error);  
// });

//或 运算 使用 anyOf 或者  or
// db.users.where('age').anyOf([25, 30]).toArray().then(users => {  
//   console.log('年龄为25或30的用户:', users);  
// }).catch(error => {  
//   console.error('查询出错:', error);  
// });

// db.users.where('age').equals(25).or('age').equals(30).toArray().then(users => {  
//   console.log('年龄为25或30的用户:', users);  
// }).catch(error => {  
//   console.error('查询出错:', error);  
// });

// 或运算  +  且运算
// db.users.where('age').equals(24).or('age').equals(15).and(() => {  
//   return db.users.where('name').contains('陈');  
// }).toArray().then(users => {  
//   console.log('年龄为24或15,且名字包含“陈”的用户:', users);  
// }).catch(error => {  
//   console.error('查询出错:', error);  
// });

//记录数量
// db.users.where('age').aboveOrEqual(25).count(count => {  
//   console.log(count); // 输出年龄大于或等于25岁的用户数量  
// }).catch(error => {  
//   console.error("Error counting users:", error);  
// });

//求和
// db.users.where('age').aboveOrEqual(25).each(user => {  
//   // 在这里累加年龄  
//   sum += user.age;  
// }).then(() => {  
//   // 当所有记录都被遍历时,打印总和  
//   console.log(`年龄大于或等于25岁的用户的年龄总和: ${sum}`);  
// }).catch(error => {  
//   console.error("计算年龄总和时出错:", error);  
// });

//求平均值

// db.users.where('age').aboveOrEqual(25).toArray().then(users => {  
//   const sum = users.reduce((acc, user) => acc + user.age, 0);  
//   const average = sum / users.length;  
//   console.log(`年龄大于或等于25岁的用户的平均年龄: ${average}`);  
// }).catch(error => {  
//   console.error("计算平均年龄时出错:", error);  
// });

//#endregion 使用案例


import Dexie from 'dexie';
export const db = new Dexie('localdb');
db.version(1).stores({
  topics: '++id, name, img, date',//gpt 主题
  messages: '++id, name, img, date, role, content,topicId', //gpt 问答
});
文档更新时间: 2024-03-17 22:34   作者:admin