我正在寻找类似5个小时的答案,希望有人可以提供帮助。我有一个MongoDb集合结果(我正在使用mLab),它看起来像这样:
$("item1").on('change', function() {
var $this = $(this);
$.get("/index.php?r=kasir%2Ftransaction%2Fget-price-item&id=" +$(this).val(), function(data){
console.log("harga:"+ $this.closest("tr").find(".harga-jual").length);
$this.closest("tr").find(".harga-jual").val(data.price.harga)
});
});
“user”是一个MongoID我保存在代码的前一部分,“结果”是分数的记录。当用户进行新分数时,我必须更新相应级别的分数(我正在使用NodeJS)。 这是我到目前为止尝试过的事情之一。
{
"user":"5818be9c74aaec1824c28626"
"results":[{
"game_id":14578,
"level1":-1,
"level2":-1,
"level3":-1
},
{ ....
}],
{ "user":....
}
}
});
我检查了每个变量和参数的内容,尝试使用$ elemMatch和点表示法,设置upsert和multi,没有结果。我在mongo shell上使用了一个相同的命令,它在第一次尝试时就有用了。
如果有人能告诉我我做错了什么或者指出了我正确的方向,那就太好了。 感谢
答案 0 :(得分:0)
在MongoDB中将MongoId用作字段时,不能仅传递带有ID的字符串来进行查询,您必须将该字符串标识为ObjectId
(Mongo中的ID类型) 。只需在您的node.js文件中添加一个新的require
。
var ObjectID = require("mongodb").ObjectID;
并在更新请求中使用导入的构造函数。
dbM.collection("results").update(
{user:ObjectID(id),...
...
}