面试题答案
一键面试- 更新操作代码:
db.collection.updateOne( { "name": "John", "hobbies.name": "reading" }, { "$set": { "hobbies.$.books.1.title": "NewBookTitle" } } );
- 运算符解释:
$
运算符:- 作用:在更新操作中,
$
运算符用于定位数组中满足查询条件的第一个元素。在上述更新操作中,查询条件为{ "name": "John", "hobbies.name": "reading" }
,$
会定位到hobbies
数组中name
为reading
的那个元素。这样我们就能对这个特定的爱好对象进行后续操作。
- 作用:在更新操作中,
$set
运算符:- 作用:
$set
运算符用于更新文档中的字段值。在这里,我们使用$set
将定位到的hobbies
数组元素(也就是reading
爱好对应的对象)中的books
数组的第二个元素(索引为1)的title
字段设置为"NewBookTitle"
。通过这种方式,我们可以精确地更新文档中特定位置的字段值。
- 作用: