我正在努力增加我的機會的價值。 出於某種原因,它不會修改它,我認爲它與$inc
內的行有關。貓鼬查詢不會被修改
這裏是我的代碼:
var location: 1,
option = 1,
t = option - 1,
increase = 500;
easyCrime.update({userid: playerid, "locations.location" : location, "locations.location.easycrime.id" : option }, {"$inc" : {"locations.$.location.easycrime[t].chance" : increase}}).then(function (result) {
console.log(result);
});
結果:
{ ok: 1, nModified: 0, n: 0 }
爲什麼心不是這種修改?
型號:
userid: {
type: String,
default: '57c1c0f3b6b20c011242bf22'
},
locations: [
{
userid: {
type: String,
default: '57c1c0f3b6b20c011242bf22'
},
location: {
type: Number,
default: 1
},
easycrime: [
{
optioname : {
type: String,
default: 'text'
},
chance: {
type: Number,
default: 200
},
id : {
type: Number,
default: 1,
}
}
],
}
],
編輯:
發現,locations.location.easycrime不存在。 更新代碼:
easyCrime.update({userid: playerid, "locations.location" : location, "locations.easycrime.id" : option }, {"$inc" : {"locations.$.easycrime[0].chance" : increase}}).then(function (result) {
console.log("inserted chance");
console.log(result);
return resolve(result);
});
,但仍然不會工作{ ok: 0, n: 0, nModified: 0 }
編輯2:
嘗試以下查詢:
var location: 1,
option = 1,
t = option - 1,
increase = 500;
console.log("updating chance " + increase);
easyCrime.update({userid: playerid, "locations.location" : location, "locations.easycrime.id" : option }, {$inc : {"locations.$.easycrime.$.chance" : increase}}).then(function (result) {
console.log("inserted chance");
console.log(result);
});
但console.log("inserted chance");
和console.log(result);
不會被執行。 (意思是,它不會運行)
模式下,你發現的地點,並在地方你會發現easycrime。那至少是我想要的。 @阿魯納,我看到了錯誤,但不知道它是否會解決它。 – maria
@Aruna,更新線程。 – maria
請看看我的答案,其他建議 – Aruna