koishijs / koishi-plugin-dialogue

Dialogue System for Koishi
https://dialogue.koishi.chat
MIT License
5 stars 4 forks source link

使用MongoDB时,尝试查询问答数量时执行异常 #9

Closed dragon-fish closed 1 year ago

dragon-fish commented 1 year ago

发送查询问答数量的指令(按出厂设置,即 ## ),bot无答复

控制台有报错(密恐警告):

[W] session c:\Chatbot-SILI-v4\node_modules\@satorijs\adapter-onebot\lib\index.js:107
        throw new SenderError(params, action, retcode);
              ^

    Error: Error with request send_group_msg, args: {"group_id":"1029954579","message":[{"type":"text","data":{"text":"共收录了 [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Objec
t],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Ob
ject],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object
 Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[obj
ect Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[
object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object
],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Obj
ect],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object
Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[obje
ct Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[o
bject Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Obje
ct],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object O
bject],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[objec
t Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[ob
ject Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Objec
t],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Ob
ject],[object Object],[object Object],[object Object],[object Object] 个问题和 [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object
],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Obj
ect],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object
Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[obje
ct Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[o
bject Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Obje
ct],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object O
bject],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[objec
t Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[ob
ject Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Objec
t],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Ob
ject],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object
 Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[obj
ect Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[
object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object
],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Obj
ect],[object Object] 个回答。"}}]}, retcode: 100
        at Object._get (c:\Chatbot-SILI-v4\node_modules\@satorijs\adapter-onebot\lib\index.js:107:11)
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
        at Object._Internal.<computed> (c:\Chatbot-SILI-v4\node_modules\@satorijs\adapter-onebot\lib\index.js:138:20)
        at Object.flush (c:\Chatbot-SILI-v4\node_modules\@satorijs\adapter-onebot\lib\index.js:682:159)
        at Object.render (C:\Chatbot-SILI-v4\node_modules\@satorijs\core\src\message.ts:36:7)
        at Object.send (C:\Chatbot-SILI-v4\node_modules\@satorijs\core\src\message.ts:43:5)
        at null.<anonymous> (C:\Chatbot-SILI-v4\node_modules\@koishijs\core\src\session.ts:354:7)
        at Session.withScope (C:\Chatbot-SILI-v4\node_modules\@koishijs\core\src\session.ts:234:14)
        at null.next (C:\Chatbot-SILI-v4\node_modules\@koishijs\core\src\internal.ts:216:16)
        at null.next (C:\Chatbot-SILI-v4\node_modules\@koishijs\core\src\internal.ts:216:16)

发现文中的 [object Object] 数量与问题数量一致(

shigma commented 1 year ago

最新版的行为不是一堆 [object Object] 而是两个 undefined。

由程序生成的 pipeline 是这样的:

[
  {
    "$match": {
      "_id": null
    }
  },
  {
    "$unionWith": {
      "coll": "dialogue",
      "pipeline": [
        {
          "$project": {
            "_id": 0,
            "id": 1,
            "flag": 1,
            "probS": 1,
            "probA": 1,
            "original": 1,
            "question": 1,
            "answer": 1
          }
        },
        {
          "$group": {
            "_id": null,
            "_temp_2": {
              "$addToSet": "$id"
            }
          }
        },
        {
          "$project": {
            "_id": 0,
            "_temp_1": {
              "$size": "$_temp_2"
            }
          }
        }
      ]
    }
  },
  {
    "$unionWith": {
      "coll": "dialogue",
      "pipeline": [
        {
          "$project": {
            "_id": 0,
            "id": 1,
            "flag": 1,
            "probS": 1,
            "probA": 1,
            "original": 1,
            "question": 1,
            "answer": 1
          }
        },
        {
          "$group": {
            "_id": null,
            "_temp_4": {
              "$addToSet": "$question"
            }
          }
        },
        {
          "$project": {
            "_id": 0,
            "_temp_3": {
              "$size": "$_temp_4"
            }
          }
        }
      ]
    }
  }
]

但只得到了一个 {}。与之类似的单元测试均工作正常。

@undefined-moe 你觉得上面的 pipeline 正确吗?

undefined-moe commented 1 year ago

I've got [{_temp_1:6120},{_temp_3:3245}] with this query.

dragon-fish commented 1 year ago

Update: Can not reproduce with versions below