假设我们有以下集合,我对此有疑问:
{
"_id" : 1,
"user_id" : 12345,
"items" : [
{
"item_id" : 1,
"value" : 21,
"status" : "active"
},
{
"item_id" : 2,
"value" : 22,
"status" : "active"
},
{
"item_id" : 3,
"value" : 23,
"status" : "active"
},
...
{
"item_id" : 1000,
"value" : 1001,
"status" : "active"
},
]
}
在一个集合中,我有很多文档(与系统中的用户一样多,大约 100K文档集合)。在每个文档中,我都有 1000个文档内的数组“items”
将使用的操作列表:
db.items.update({_id : 1 , "items.item_id" : 1000} , {$set: {"items.$.value": 1000}})
问题是:我是否需要创建像这样的复合索引
db.items.createIndex( { "_id": 1, "items.item_id": 1 } )
帮助MongoDB更新数组内部的某些文件或MongoDB无论是复合索引都可以在整个文档中进行搜索?或者也许有人可以为这种情况提出不同的架构?