IntelliJ IDEA 数据抓握 - NotSerializedException:MongoDB 查询中的 com.oracle.truffle.api.TruffleStackTraceElement

问题描述 投票:0回答:1

我正在使用查询控制台进行 MongoDB 查询。

let ids = db.collection.aggregate([
    {
        $match: { ... }
    },
    {
        $group: {
            _id: "$field"
        }
    }
]).map(doc => doc._id);

然后我想在第二个查询中使用该变量

db.collection.aggregate([
    {
        $match: {
            "field": { $in: ids },
            ...
        }
    }
]);

注意:

field
是字符串类型。

第一个查询成功完成,但第二个查询失败并出现奇怪的错误:

错误解组返回嵌套异常是:WriteAbortedException 写入中止; NotSerializedException:com.oracle.truffle.api.TruffleStackTraceElement

我确定变量

ids
有问题,因为如果我用
"field": { $in: ['1', '2'] }
修改第二个查询,那么它就可以正常工作。

mongodb datagrip
1个回答
0
投票

事实证明,关键是追加

.toArray()
,因此
ids
变量实际上变成了一个数组。

这适用于 DataGrip:

let ids = db.collection.aggregate([
    {
        $match: { ... }
    },
    {
        $group: {
            _id: "$field"
        }
    }
]).map(doc => doc._id).toArray();
© www.soinside.com 2019 - 2024. All rights reserved.