我在使用PHP和Javascript的MongoDB時遇到問題。通過ajax作爲參數傳遞的Mongodb PHP更新文檔不保存
1)我向集合寫出一個文檔並確認它在那裏。
{
"_id": ObjectId("500d9f072d854e2001000018"),
"field1": "happenstance",
"mydata": "balls grinders",
"desc": "johnsig"
}
2)使用JavaScript我通過調用一個PHP程序獲取從集合中的記錄。
function fetch(){
$.ajax({
url: "sbugger.php",
dataType: "json",
data: "mode=fetch",
success: function(data){
record = data;
}
});
}
3)I修改 「desc」 的元件,並通過將其返回到php程序
function save(){
record.desc=" HELLO THERE FELLA";
jString = encodeURIComponent(JSON.stringify(record));
myData = "mode=save&record="+jString;
url = "sbugger.php";
$.ajax({
url: url,
type: 'POST',
data: myData,
success: function(data){
document.write(data);
} });
}
在PHP端的代碼保存文檔是:
$stuff = json_decode($_REQUEST["record"],true);
$collection->save($stuff);
var_dump($stuff);
var_dump($db->lastError());
因爲我沒有修改$ id我認爲 這隻會更新記錄d到位。
相反,我得到這個的var_dump:
object(stdClass)[4]
public '_id' =>
object(stdClass)[5]
public '$id' => string '500d9f072d854e2001000018' (length=24)
public 'field1' => string 'happenstance' (length=12)
public 'mydata' => string 'balls grinders' (length=15)
public 'desc' => string ' HELLO THERE FELLA' (length=18)
這lastError味精
陣列 'ERR'=>字符串 '無效操作者:$ ID'(長度= 21) '代碼'= >內部10068 'N'=> INT 0 'lastOp'=> 對象(MongoTimestamp)[8] 公共 '秒'=> INT 1343070014 公共 'INC'=> INT 1 '的ConnectionId'=> INT 56143 'ok'=>浮點數1
我一直在用這個擊打我的頭靠着牆1.5天。
任何MongoDB專家都可以幫助我嗎?
P.S.如果我仍然只是在一個PHP程序中找到並完美保存工作。 似乎當傳遞json來回有一個問題。