node.js - Mongoose countDocuments 未按预期返回
问题描述
我正在尝试编写一个函数来在提交查询之前查找猫鼬数据库中的文档是否存在。但是,它一直说该文档不存在,即使它确实存在。
/**
* Determines if a Journal already exists (via ISSN numer)
* @param {string} data - The ISSN number of the Journal to be checked
* @return {boolean} - True = journal exists, false it doesnt exist.
*/
async function getJournalByISSN(data) {
const issn = String(data);
const docCount = await Journal.countDocuments().or([
{issn_electronic: issn},
{issn_print: issn}]);
let value = false;
console.log(docCount, value);
if (docCount != 0) value = true;
return value;
}
给定数据的 console.log 返回格式正确的 ISSN。当我调试猫鼬查询时,它看起来格式正确。
控制台日志
journals.countDocuments {"$or":[{"issn_electronic":"1234-1234"},{"issn_print":"1234-1234"}]} {}
手动指定搜索字段时,即
{issn_electronic: '1234-1234'}, {issn_print: '1234-1234'}]}
它返回正确的文档计数值。
有趣的是复制粘贴mongoose的debug,发现字符串中已经注入了空格
例如
journals.countDocuments {"$or":[{"issn_electronic":"1234- 1234"},{"issn_print":"1234- 1234"}]} {}
解决方案
推荐阅读
- c++ - 有没有更好的方法来反转循环中布尔值的值?
- java - 模拟 MSPaint 程序在 java 中绘制以前的笔画而不是仅绘制当前笔画
- google-sheets - 多行两列的总和
- javascript - 从消息中心访问消息
- java - 检查接口的两个对象是否相等(不覆盖)
- email - 重叠的多部分“无媒体类型”
- mysql - (SQL) 在另一个字符串列中查找实体
- arrays - 为什么我会收到“数组索引必须是正整数或逻辑值”。
- python-3.x - 我正在编写一个函数,该函数将几个字典和一个数据框作为输入并输出一个新的数据框
- python - 获取列表中给定项目的计数(不使用 numpy)