无法使用node.js中的mongoose查询mongoDB
假设我的mongoDB:db.co中有一个集合 并且只有一份文件:无法使用node.js中的mongoose查询mongoDB,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,假设我的mongoDB:db.co中有一个集合 并且只有一份文件: { "_id" : ObjectId("50d083e32cdcf7ce065b616c"), "age" : 22, "friends" : [ "Tom"], "location" : "NY", "name" : "lee", "skill" : [ "javascript", "java" ] } 然后我想通过以下代码在node.js中用mongoose查询它: var coSchem
{ "_id" : ObjectId("50d083e32cdcf7ce065b616c"),
"age" : 22,
"friends" : [ "Tom"],
"location" : "NY",
"name" : "lee",
"skill" : [ "javascript", "java" ]
}
然后我想通过以下代码在node.js中用mongoose查询它:
var coSchema = mongoose.Schema( {
age: Number,
friends: Array,
location: String,
name: String,
skill: Array
})
var Co = mongoose.model('Co', coSchema);
function findSomeoneInCo (name) {
Co.find({"name": name}, function (err, doc) {
if (err) {
console.log('find some one failed: ' + err);
return;
}
console.log('find successed: ' + doc);
})
}
findSomeoneInCo("lee");
但它什么也没给我
我的代码有什么问题?如何获得相应的查询结果?.find异步工作,这意味着它的回调在函数已经完成时运行 看
.find是异步工作的,这意味着它的回调在您的函数已经运行时运行 看
在确定要使用的集合名称时,Mongoose将小写的模型名称复数化。因此,默认情况下,模型名为“Co”时,它将在cos集合中查找 要覆盖默认值并与现有的共同收藏对齐,请执行以下操作:
var Co = mongoose.model('Co', coSchema, 'co');
在确定要使用的集合名称时,Mongoose将小写的模型名称复数化。因此,默认情况下,模型名为“Co”时,它将在cos集合中查找 要覆盖默认值并与现有的共同收藏对齐,请执行以下操作:
var Co = mongoose.model('Co', coSchema, 'co');
我注意到您要查找的回调具有以下参数:err,doc find总是返回一个数组,所以您确实希望它是:err,docs 或 使用芬顿 异步内容在您发布的代码中不应该是一个问题,嵌套回调仍将被执行。你确定你的连接正常吗。我将运行一个开放式查询:
Co.find({}, function(err, docs){
console.log(docs);
}
只需检查集合中是否有内容我注意到要查找的回调包含以下参数:err,doc find总是返回一个数组,所以您确实希望它是:err,docs 或 使用芬顿 异步内容在您发布的代码中不应该是一个问题,嵌套回调仍将被执行。你确定你的连接正常吗。我将运行一个开放式查询:
Co.find({}, function(err, docs){
console.log(docs);
}
只需检查集合中是否有某些内容Mongoose在任何凝乳操作期间都会将您的型号名称复数化, 使用此选项并检查:
var Co = mongoose.model('Co', coSchema, 'co'); //Even the case matters
或
Mongoose会在任何凝乳操作中使您的型号名称复数, 使用此选项并检查:
var Co = mongoose.model('Co', coSchema, 'co'); //Even the case matters
或
.find是异步的。但是console.log应该可以工作-它们可以吗?另请参见@MaxGherkins:Yes,它可以正常工作。find是异步的。console.log应该可以工作,是吗?另请看@MaxGherkins:是的,它正常工作。我尝试了这种方法,但没有成功。事实上,第一种方法没有回调,我可以查询另一个集合的数据。我可以查询这个。我尝试了这种方法,但没有成功。事实上,第一种方法没有回调,我可以查询其他集合的数据。只需查询此集合即可