我正在学习 MongoDB,并希望因为存储在 MongoDB 数据库中的数据格式与 JSON 非常相似,所以我能够直接从 jQuery 的getJSON()
方法查询 MongoDB。
但是,我正在学习,您似乎需要 MongoDB 和 adriver
才能从应用程序访问数据库。所以我暂时使用PHP驱动程序。
我正在尝试返回value
该content
字段:
MongoDB 文档
{
"_id": ObjectId("34576347347"),
"content": "here is some content",
"field2": {
"subfield1": {
"0": "sf1v0",
"1": "sf1v1",
"2": "sf1v2"
},
"subfield2": "value 2"
},
"field2": "value 3"
}
PHP
<?php
$dbhost = 'username:password@127.x.xx.x:27017/';
$dbname = 'dbname';
$m = new MongoClient("mongodb://$dbhost");
$db = $m->$dbname;
$collection = $db->myCollection;
$query = $collection->find(array("field2.subfield2" => "value 2"));
header("Content-type: application/json");
echo json_encode($query);
?>
jQuery
$.getJSON("http://path/to/mongo.php", {cid: href, format: 'json'}, function(results){
$("#my_div").html(results[0].content);
}
我想我需要“得到”一些东西:
PHP 查询返回的内容:
$query = $collection->find(array("field2.subfield2" => "value 2"));
我认为 MongoDB 术语它正在返回
cursor
,但它是 PHP 数组,还是 JSON 数据或其他东西?getJSON()
在代码中返回所需数据的正确“调用”是什么?目前 Firebug 正在向我展示:
TypeError: results[0] is undefined
更新
我将getJSON()
代码更改为:
$("#my_div").html(results.content);
现在我没有收到错误,而是来自 Firebug 的以下内容:
响应选项卡显示:{}
JSON 选项卡显示:没有要显示此对象的属性。