我的数据库中有以下对象:
{ "_id" : ObjectId("5aee9a0cda447c1ca8bf415d"), "id" : 4,
"categoryName" : "Website", "contestName" : "Free programming books",
"description" : "\nA list of free online programming books, categorized by languages/topics\n ",
"nameIds" : [ ObjectId("5b0131d66e3a1c705eb93913"),
ObjectId("5b0cf2ffe7405204c6e88e5e"), ObjectId("5b0cf712a891af0506382c29") ] }
并希望删除我的" nameIds"中的最后一个元素。阵列。现在我正试图使用
db.contests.update({_id: ObjectId("5aee9a0cda447c1ca8bf415d")}, { $pull: { nameIds: "5b0cf712a891af0506382c29" }})
但尚未开始工作。
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
为什么$ pull不能以这种格式工作?它找到了元素,但没有以任何方式改变数组。
答案 0 :(得分:0)
数组中的值为<p id='test'>Hello <button>Click me</button></p>
$(document).ready(function(){
$("#test").on("click", 'bottun', changeSize);
});
s。在更新操作中,将String文本指定为要删除的值。这与实际值不匹配。使用
ObjectId
代替。
答案 1 :(得分:0)
将objectId包装在ObjectId()内部,如:
ObjectId("5b0cf712a891af0506382c29")
以下查询有效并从nameIds数组中提取相应的项目:
db.contests.update({_id: ObjectId("5aee9a0cda447c1ca8bf415d")}, {
$pull: { nameIds: ObjectId("5b0cf712a891af0506382c29") }})
文件中的更新:
{
"_id" : ObjectId("5aee9a0cda447c1ca8bf415d"),
"id" : 4,
"categoryName" : "Website",
"contestName" : "Free programming books",
"description" : "\nA list of free online programming books, categorized by languages/topics\n ",
"nameIds" : [
ObjectId("5b0131d66e3a1c705eb93913"),
ObjectId("5b0cf2ffe7405204c6e88e5e")
]
}