【发布时间】:2022-02-05 16:40:45
【问题描述】:
我需要用数组查询所有文档,但返回的文档没有数组。
查询
(async () => {
const data = await Lesson.find({signed: {$exists: true}});
console.log(data[0].signed); # undefined
})();
型号
const lessonSchema = new mon.Schema(
{
day: Number,
startTime: Number,
endTime: Number,
description: {type: String, trim: true},
signed: [mon.Schema.Types.ObjectId]
},
{
collection: 'lessons'
}
);
module.exports = mon.model("Lesson", lessonSchema);
我检查了数据库,文档确实有数组。 该查询检索除数组之外的所有内容(除数组之外的所有文档及其值)。 注意:在数据库中我只有两个测试文档。两者都有一个数组,但查询中都没有数组。
谢谢
编辑:我发现如果我从架构中删除签名的属性,它就可以工作。为什么?
【问题讨论】:
-
你试过 findOne 功能了吗?
-
$exists匹配包含该字段的文档,包括该字段值为空的文档,您是否检查了data或仅data[0]中的所有文档? -
@sinabariaji 是的。在数据库中有两个带有数组的测试文档
-
在返回的查询中都没有数组,但他们应该有
-
@Konflex 我需要所有文件,而不仅仅是一份。在代码中我只使用了一个作为示例。
标签: javascript mongodb mongoose