[英]Mongoose.model.find() always returns empty array
在mongoose和express庫的幫助下,我使用node.js構建了一個 web 應用程序后端服務器。 我的代碼使用express.Router().get()在路由“/”上列出,當收到“獲取請求”時,它使用mongoose.Z20F35E630D5394DBFA84C3.F6從 mongodb 集合中獲取數據
問題是,無論我嘗試了什么, mongoose.model.find()返回一個空數組...
這是 express.Router().get() 的代碼:
const express = require("express");
const router = express.Router();
const AttackPattern = require("../models/attack_pattern"); //the model
router.get("/", (req, res) => {
AttackPattern.find({}, function (err, docs) {
if (err) {
console.log("error!"); //there was an error...
} else {
console.log(docs); //fetch succeful
res.status(200).send(docs);
}
});
});
這是 model 的代碼:
const mongoose = require("mongoose");
const attackPatternSchema = mongoose.Schema({
_id: String,
name: String,
description: String,
x_mitre_platforms: [String],
x_mitre_detection: String,
phase_name: String,
});
module.exports = mongoose.model(
"AttackPattern",
attackPatternSchema,
"attack_pattern"
);
我已經看過Model.find() 在 mongoose和Mongoose 中返回空,但總是返回一個空數組 NodeJS但沒有找到運氣......
重要信息:
幫助將不勝感激:)
在您的 model 中刪除參數 attack_pattern
module.exports = mongoose.model(
"AttackPattern",
attackPatternSchema
);
或者
當您創建 model 時,通過新模式更改 mongoose.model 並聲明_id
屬性,如:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var attackPatternSchema = new Schema({
_id: { type: Schema.ObjectId, auto: true },
// others attributes
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.