gpt4 book ai didi

javascript - MongoDB 查询可以工作,但不能与 Mongoose 一起使用

转载 作者:行者123 更新时间:2023-12-03 05:33:16 27 4
gpt4 key购买 nike

我正在尝试使用 Mongoose 查询集合,有一个带有简单 db.course.find() 查询的集合示例输出

{
"_id" : ObjectId("581c9408fc01b15cb21043e4"),
"calendar_id" : DBRef("calendar", ObjectId("581c5972fd1c59295c34f1b8"), "ecampus"),
"date" : 1478473200000,
"title" : "Conception et planification BI",
"teacher" : "fiolet gilles",
"start_at" : "08:30",
"end_at" : "12:30"
}

我有一个运行良好的 MongoDB 查询

db.course.find({'calendar_id.$id': ObjectId("581c5972fd1c59295c34f1b8")}).sort({date: 1})

我正在尝试在我的 NodeJS 应用程序中使用 Mongoose 执行相同的查询我进行了此查询,但此查询返回一个空数组,因为 ObjectId 无法正常工作。

let mongoose = require('mongoose');
let ObjectId = mongoose.Types.ObjectId;
let id = new ObjectId(session.calendar_id);

Course.find({'calendar_id.$id': id}).sort({date: 1}).exec(function (err, courses) {
console.log(err, courses);
createJsonBody(courses);
});

类(class)来 self 的模型文件,如下所示

const Course = mongoose.model('course', {
calendar_id: Schema.ObjectId,
date: Number,
title: String,
teacher: String,
start_at: String,
end_at: String
});

我怎样才能让这个 Mongoose 查询工作?该模型可能未正确形成?

最佳答案

使用Course.find({'calendar_id': id})而不是Course.find({'calendar_id.$id': id}) .

对于 Mongoose 来说,$id 不存在。

关于javascript - MongoDB 查询可以工作,但不能与 Mongoose 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40842155/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com