我在使用Mongoose包中的find函数时遇到了一个问题。当我调用这个函数时,它什么也不返回。然而,使用MongoDBCompass的shell,我得到了预期的结果。下面是函数调用:
let { ISBN } = *req.body*;
let searchPattern = ISBN;
await booksModel
.**find**({ ISBN: { $regex: searchPattern, $options: "i" } })
.then((result) => {
setTimeout(() => {
return res.status(200).json({ message: `${result.length} books found`, books: result });
}, 1000);
})
.catch((error) => {
console.log(error);
return res.status(404).json({ message: "Error while searching.", error: error });
});
ISBN存储为“字符串”类型。查询也是作为字符串来的
这里是Schema。
const booksSchema = new mongoose.Schema({
ISBN: String,
title: String,
author: String,
thumbnail: String,
description: String,
addDate: Date,
additionalImages: [], // { String, String }
storageInfo: [], // type {serialNumber: Number, aisle: String, shelf: String}
issueList: [], // userID: String, issueDate: Date, isIssued: Boolean
});
谢谢.
1条答案
按热度按时间brtdzjyr1#
真糟糕。我连接到了应用程序中的另一个数据库示例,它没有我正在输入的ISBN条目。MongoDB Compass连接到另一个示例。吸取教训了。