我尝试过使用find
和findOne
,但两者都没有返回文档。在find
返回findOne
时,null
返回一个空数组。 err
中的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);
});
我的问题在这里:
{{1}}
我可以将内容上传到数据库并通过RockMongo查看,但我无法在之后获取它们。这是我第一次使用MongoDB,所以我想我只是缺少一些基础知识。任何正确方向的推动都会很棒!
答案 0 :(得分:42)
对mongoose.model
的调用确定了模型所绑定的集合的名称,默认为pluralized,较低的模型名称。因此,对于您的代码,这将是'models'
。要将模型与files
集合一起使用,请将该行更改为:
var Model = mongoose.model("Model", fileSchema, "files");
或
var Model = mongoose.model("file", fileSchema);
答案 1 :(得分:0)
为了避免多元化的复杂性,只需使用以下方法:
var Model = mongoose.model("Model", fileSchema, "pure name your db collection");
这非常令人困惑。[至少对我来说。]
答案 2 :(得分:0)
也有同样的问题。上面的解决方案对我没有用。即使未找到查询,我的应用程序也永远不会返回错误。它返回空数组。所以我把它放在我的代码中:
if(queryResult.length==0) return res.status(404).send("not found");
答案 3 :(得分:0)
const growingUnit= mongoose.model('Growing Unit', growingUnitSchema);
我故意在“增长单元”中留了一个空格,它总是返回空数组。在我的场景中,需要解决的问题是删除该空间以使其成为“ GrowingUnit”。
const growingUnit= mongoose.model('Growing Unit', growingUnitSchema);
答案 4 :(得分:0)
一般“hello world”问题(有时这个问题与猫鼬无关)。
检查集合查询命令中的小的拼写差异(如 listing
而不是 listings
)。
检查您的连接是否使用了正确的 URI
(例如,您试图从 localhost
中存在的集合中检索数据,但使用 mongoDB cluster
(云) - 或 - 与连接字符串 URI 相关的任何其他问题)。
https://docs.mongodb.com/manual/reference/connection-string/
答案 5 :(得分:0)
对我来说,问题是 .skip(value)
,我传递的是 page=1
而不是 page=0
。
由于我的记录很少,我总是得到空数组。