jack před 3 dny
rodič
revize
696c7c50b7
1 změnil soubory, kde provedl 76 přidání a 7 odebrání
  1. 76 7
      mongo.js

+ 76 - 7
mongo.js

@@ -28,7 +28,7 @@ us.initMongoConnection = async function (host, database) {
     }
     return us.client.db(database); // 返回数据库实例
 }
-
+/*
 async function updateUserData(host, database, cename, data, res) {
     const db = await us.initMongoConnection(host, database); // 连接数据库
     try {
@@ -51,17 +51,86 @@ async function updateUserData(host, database, cename, data, res) {
         console.error('更新失败', err);
     }
 }
+*/
+async function updateUserData(host, database, cename, data, res) {
+    const db = await us.initMongoConnection(host, database); // 连接数据库
+    try {
+        const collection = db.collection(cename); // collection设置
+        const dateKey = Object.keys(data)[0]; // 获取日期键
+        const userid = Object.keys(data[dateKey])[0];
+        const userData = data[dateKey][userid]; // 从 data 中提取 userData
+        console.log(userData);
+
+        // 使用 upsert 更新或插入文档
+        await collection.updateOne(
+            { [dateKey]: { $exists: true } },
+            {
+                $set: { // 设置其他字段
+                    [`${dateKey}.${userid}`]: {
+                        username: userData.username,
+                        org: userData.org,
+                        school: userData.school,
+                        browser: userData.browser
+                    }
+                },
+                // 先更新用户信息
+            },
+            { upsert: true } // 如果没有数据,默认创建一条数据
+        );
+
+        // 然后推送操作到 operation 数组
+        await collection.updateOne(
+            { [dateKey]: { $exists: true } },
+            {
+                $push: { [`${dateKey}.${userid}.operation`]: userData.operation } // 将用户数据推入数组
+            }
+        );
+
+        console.log('数据更新成功');
+        //res.end(JSON.stringify({ status: "1" }))
+    } catch (err) {
+        //res.end(JSON.stringify({ status: "0", error: err.message })) // 返回错误信息
+        console.error('更新失败', err);
+    }
+}
+
+
+
 
 /*
+{
+    "2025-04-01": {
+        "userid": {
+            username: "",
+            org: "",
+            school: "",
+            browser: "",
+            operation:[
+                {
+                    "useTime":"",
+                    "loadTime":"",
+                    "object":"",
+                    "status":"error(报错信息)、正常就是success"
+                }
+            ]
+    }
+}
 // 示例调用
 updateUserData("mongodb://root:usestudio-1@123.58.32.151:11641?authSource=admin", "cocolog", "applog", {
     "2025-04-01": {
-        "username":
-        {
-            userid: "",
-            date: "",
-            appname: "",
-            status: ""
+        "userid": {
+            username: "",
+            org: "",
+            school: "",
+            browser: "",
+            operation: [
+                {
+                    "useTime": "",
+                    "loadTime": "",
+                    "object": "",
+                    "status": "error(报错信息)、正常就是success"
+                }
+            ]
         }
     }
 });