MongoDb多键索引-稀疏、唯一和增长问题
至于— 我对为publisherMongoDb多键索引-稀疏、唯一和增长问题,mongodb,indexing,Mongodb,Indexing,至于— 我对为publisherO'Reilly Media在book数组字段上创建多键索引有一些疑问: 出于学习目的,我将在未来假装书本数组最多只会增长5个元素,因此我想使用数组只关注此模式: 当我向book数组添加objectId时,它会自动为新元素编制索引吗 当我创建db.publishers.createIndex(books)时,是否要 背景是真的,所以当我添加到书中时它不会阻塞 数组,并对新值进行索引 我看到默认情况下,unique值为false。我对这件事感到困惑 这是因为我不知道
O'Reilly Media
在book
数组字段上创建多键索引有一些疑问:
出于学习目的,我将在未来假装书本数组最多只会增长5个元素,因此我想使用数组只关注此模式:
db.publishers.createIndex(books)
时,是否要
背景是真的,所以当我添加到书中时它不会阻塞
数组,并对新值进行索引unique
值为false。我对这件事感到困惑
这是因为我不知道MongoDb索引的内部工作原理。
books
数组上的唯一值不需要为真吗sparse
,我为什么要使用它,为什么设置为false?这个
books
数组已是指定字段{
name: "O'Reilly Media",
founded: 1980,
location: "CA",
books: [12346789, 234567890, ...]
}
{
_id: 123456789,
title: "MongoDB: The Definitive Guide",
author: [ "Kristina Chodorow", "Mike Dirolf" ],
published_date: ISODate("2010-09-24"),
pages: 216,
language: "English"
}
null
值也是唯一的值。所以如果没有一本出版的书,你不可能有两个出版商null
条目将是对RAM的浪费。现在,部分索引是首选的,它提供了与稀疏诱导相同的功能,然后是一些db.publishers.find({books:someBookId})
在编辑books文档时,您仍然需要首先找到它并应用最终需要同步到磁盘(甚至之前的日志)的更改。索引并不能神奇地消除持久化数据的需要