假设有一个包含
等对象的数据结构{
name : 'ernie',
likes : [
{
what : 'rubber duckie',
howmuch : 5
},
{
what : 'bert',
howmuch : 3
}]
}
和
{
name : 'cookie monster',
likes : [
{
what : 'cookies',
howmuch : 100
}]
}
如果0
的{{1}} - 数组的ernie
元素应该使其likes
- 值递增,比如增加1,那么是否存在MongoDB命令做这个? JavaScript等效项为howmuch
。
具体来说,可以按索引号访问数组的元素吗?
答案 0 :(得分:1)
要将howmuch
字段值增加1个ernie的like-array的0
元素,请同时使用 $inc
运算符使用 dot notation 来通过从零开始的索引位置访问数组元素:
db.collection.update(
{
"name": "ernie"
},
{
"$inc" : { "likes.0.howmuch" : 1 }
}
)
答案 1 :(得分:0)
你想在数组上创建索引吗?如果是,你必须在'likes'数组上创建索引。使用此代码:db.sample.createIndex ({likes : 1})
。或者更具体地说,您必须创建db.sample.createIndex ({'likes.howmuch': 1})
创建索引后,您可以使用索引访问数组元素。