gpt4 book ai didi

javascript - Mongoose 或 Query 不返回任何内容

转载 作者:行者123 更新时间:2023-12-02 23:41:50 25 4
gpt4 key购买 nike

我正在尝试查询具有适合给定用户时间表的学习类(class)的组。为什么以下查询不起作用?

Group.find().or([
{$and: [ {mondayStart: {lte: 6}}, {mondayEnd: {gte: 8}}] },
{$and: [ {tuesdayStart: {lte: 9}}, {tuesdayEnd: {gte:13}}] },
{$and: [ {wednesdayStart: {lte: 9}}, {wednesdayEnd: {gte: 12}}]
])


const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const GroupSchema = new Schema({
owner: {type: mongoose.Schema.ObjectId, ref: 'users'},
subject: String,
date: {type: Date, default: Date.now},
mondayStart: Number,
mondayEnd: Number,
tuesdayStart: Number,
tuesdayEnd: Number,
wednesdayStart: Number,
wednesdayEnd: Number
});

module.exports = Group = mongoose.model('groups', GroupSchema);

最佳答案

您必须执行查询才能“返回”某些内容。

const query = Group.find().or([
{$and: [{mondayStart: {lte: 6}}, {mondayEnd: {gte: 8}}]},
{$and: [{tuesdayStart: {lte: 9}}, {tuesdayEnd: {gte: 13}}]},
{$and: [{wednesdayStart: {lte: 9}}, {wednesdayEnd: {gte: 12}}]}
]);

可以通过Query.prototype.exec()执行查询 :

// Using a callback
query.exec((err, groups) => {
if (err) console.error(err);
else console.log(groups);
});

// As a promise
query.exec().then((groups) => {
console.log(groups);
}).catch((err) => {
console.error(err);
});

// As a promise using async/await
try {
const groups = await query.exec();
console.log(groups);
} catch (err) {
console.error(err);
}

或调用Query.prototype.then() (隐式执行查询):

// Using then
query.then((groups) => {
console.log(groups);
}).catch((err) => {
console.error(err);
});

// Using async/await
try {
const groups = await query;
console.log(groups);
} catch (err) {
console.error(err);
}

关于javascript - Mongoose 或 Query 不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56031798/

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