Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何使用mongoose查询mongoDB?_Json_Node.js_Mongodb - Fatal编程技术网

Json 如何使用mongoose查询mongoDB?

Json 如何使用mongoose查询mongoDB?,json,node.js,mongodb,Json,Node.js,Mongodb,如何使用node.js中的mongoose查询MongoDB?我可以将JSON对象插入数据库,但我尝试从数据库返回JSON对象的所有方法都返回null或仅返回有关数据库的信息 是否有一些很好的方法可以使用mongoose查询数据库,类似于以下方法: var cursor = db.collection.find() var JSONobject = cursor.next() 下面是我现在代码中的内容: mongoose.connect('mongodb://localhost/myDB');

如何使用node.js中的mongoose查询MongoDB?我可以将JSON对象插入数据库,但我尝试从数据库返回JSON对象的所有方法都返回null或仅返回有关数据库的信息

是否有一些很好的方法可以使用mongoose查询数据库,类似于以下方法:

var cursor = db.collection.find()
var JSONobject = cursor.next()
下面是我现在代码中的内容:

mongoose.connect('mongodb://localhost/myDB');
mongoose.connection.on('error', console.error.bind(console, 'connection error:'));
var cursor = mongoose.connection.db.contents.find();
console.log(cursor.next());
这会在行中抛出一个错误:

var cursor = mongoose....
声明“无法调用未定义的”的“查找”方法

请注意,我的集合“contents”实际上是存在的,它包含一个JSON文档。我知道这一点,因为我使用mongo shell手动导航到集合


编辑:我对查询数据库的其他方法持开放态度。我只是希望能够从数据库中一次返回一个JSON对象,同时跟踪客户机在数据库中的位置。

使用mongoose查询mongoDB的一种方法如下:

Content.findOne().exec(function(err,docs){console.log(docs)});
//get
app.get('/api/media/', function(req,res){
    Content.findOne().exec(function(err,docs){res.sendFile(path.join(__dirname, '/api/media/', docs.filename))});

});
Docs包含JSON对象。像访问任何其他对象一样访问其属性

注意,此方法使用异步回调。因此,您不能将JSON对象文档存储到变量中,以便在函数之外使用JSON文档信息。因此,您需要使用函数中的JSON文档对象信息执行所需的任何操作

例如,我需要查询信息来为GETAPI提供文件路径。因此,结果如下:

Content.findOne().exec(function(err,docs){console.log(docs)});
//get
app.get('/api/media/', function(req,res){
    Content.findOne().exec(function(err,docs){res.sendFile(path.join(__dirname, '/api/media/', docs.filename))});

});

注意,内容是我的模式的模型,它的一个参数是filename

您是否有要查询的特定猫鼬模型?如果不是,那么使用mongoose ODM就没有多大意义。您所要求的是更直接地使用本地mongoDB驱动程序。这太棒了!你应该考虑删除这个问题,因为它对将来读者没有什么用处。