Node.js Mongoose始终返回空数组NodeJS
我尝试过使用Node.js Mongoose始终返回空数组NodeJS,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我尝试过使用find和findOne两种方法,但都没有返回文档find返回空数组,而findOne返回null错误在这两种情况下也都为null 这是我的连接: function connectToDB(){ mongoose.connect("mongodb://localhost/test"); //i have also tried 127.0.0.1 db = mongoose.connection; db.on("error", console.error.bin
find
和findOne
两种方法,但都没有返回文档find
返回空数组,而findOne
返回null
<代码>错误在这两种情况下也都为null
这是我的连接:
function connectToDB(){
mongoose.connect("mongodb://localhost/test"); //i have also tried 127.0.0.1
db = mongoose.connection;
db.on("error", console.error.bind(console, "connection error:"));
db.once("open", function callback(){
console.log("CONNECTED");
});
};
这是我的模式:
var fileSchema = mongoose.Schema({
hash: String,
type: String,
extension: String,
size: String,
uploaded: {type:Date, default:(Date.now)},
expires: {type:Date, default:(Date.now()+oneDay)}
});
var Model = mongoose.model("Model", fileSchema);
我的问题是:
Model.find({},function(err, file) {
console.log(err)
console.log(file);
});
我可以把东西上传到数据库,并通过查看它们,但之后我无法取回它们。这是我第一次使用MongoDB,所以我想我只是缺少了一些基础知识。任何朝正确方向的推动都将是伟大的 对
mongoose.model
的调用建立了模型所绑定的集合的名称,默认为小写的模型名称。因此,对于您的代码,这将是“模型”
。要将模型与文件集合一起使用,请将该行更改为:
var Model = mongoose.model("Model", fileSchema, "files");
或
简单地说,为了避免多元化的复杂性,请使用以下方法:
var Model = mongoose.model("Model", fileSchema, "pure name your db collection");
这很让人困惑。[至少对我来说。]也有类似的问题。上述解决方案对我不起作用。即使找不到查询,我的应用程序也不会返回错误。它返回空数组。所以我把它放在我的代码中:
if(queryResult.length==0) return res.status(404).send("not found");
我故意在“成长单元”中有一个空间,它总是返回空数组。在我的场景中,删除该空间以成为“成长单位”是需要的修复
const growingUnit= mongoose.model('Growing Unit', growingUnitSchema);
这个问题可能是因为您在创建猫鼬模型时没有指定集合的名称
尝试更改:constmodel=mongoose.Model(“Model”,fileSchema)代码>
对此:constmodel=mongoose.Model(“Model”,fileSchema,“NameOfCollection”)代码>一般“hello world”问题(有时该问题与猫鼬无关)
检查集合是否不是真的空(屏幕截图)
检查集合查询命令中的拼写差异(如列表
而不是列表
)
检查您的连接是否使用了正确的URI
(例如,您试图从localhost
中存在的集合中检索数据,但使用mongoDB集群
(云)-或-与连接字符串URI相关的任何其他问题)。
您通过RockMongo看到的文档集合的名称是什么?所有信息都在TestBeauty下的集合文件中,非常感谢。我很惊讶,我一直关注的教程中没有一个提到这一点。这挽救了这一天。谢谢!遗憾的是,官方指南中没有强调这一点。@thameera,这里也是。我正从.net领域进入未知领域,在这一点上我浪费了太多时间。救生员。是的,公约似乎并没有被提及,至少在我的搜索尝试。非常感谢。var Model=mongoose.Model(“Model”,fileSchema,“files”);今天是2021年,这仍然是在拯救我的生命,谢谢!!!
const growingUnit= mongoose.model('Growing Unit', growingUnitSchema);
const growingUnit= mongoose.model('Growing Unit', growingUnitSchema);