什么是稀疏?mongodb中稀疏的目的是什么?

什么是稀疏?mongodb中稀疏的目的是什么?,mongodb,mongodb-query,sparse-matrix,Mongodb,Mongodb Query,Sparse Matrix,稀疏布尔值如果为true,则索引仅引用具有指定字段的文档。这些索引使用更少的空间,但在某些情况下(特别是排序)表现不同。默认值为false。稀疏索引类似于mongodb中的常规索引。不同之处在于稀疏索引只包括具有索引字段的文档,而常规索引包括所有文档,无论索引字段是否存在 例如,当您在客户集合的年龄字段上创建索引时,并非每个客户都有年龄信息,稀疏索引将排除没有年龄字段的客户,而常规索引将包括所有客户,即使该客户没有年龄值。假设客户集合中有10亿个文档,其中一半的文档没有年龄记录,一个关于年龄的稀

稀疏布尔值如果为true,则索引仅引用具有指定字段的文档。这些索引使用更少的空间,但在某些情况下(特别是排序)表现不同。默认值为false。

稀疏索引类似于mongodb中的常规索引。不同之处在于稀疏索引只包括具有索引字段的文档,而常规索引包括所有文档,无论索引字段是否存在

例如,当您在客户集合的年龄字段上创建索引时,并非每个客户都有年龄信息,稀疏索引将排除没有年龄字段的客户,而常规索引将包括所有客户,即使该客户没有年龄值。假设客户集合中有10亿个文档,其中一半的文档没有年龄记录,一个关于年龄的稀疏索引将节省大量内存空间

通过添加{sparse:true}在客户集合的年龄上创建稀疏索引

db.customers.createIndex( { age: 1 }, { sparse: true } );
此查询将使用稀疏索引,因为查询中的条件与稀疏索引非常匹配。我们只想退回年龄大于21岁的客户,如果客户没有年龄档案,我们不包括他们

db.customers.find({age: {$gt:21}});
此查询将不使用稀疏索引,它将返回所有文档,包括没有年龄字段的文档

db.customers.sort({age:1});
db.customers.sort({age:1}).hint({age:1});
此查询将使用稀疏索引,它将仅返回具有年龄字段的文档

db.customers.sort({age:1});
db.customers.sort({age:1}).hint({age:1});

稀疏索引类似于mongodb中的常规索引。不同之处在于稀疏索引只包括具有索引字段的文档,而常规索引包括所有文档,无论索引字段是否存在

例如,当您在客户集合的年龄字段上创建索引时,并非每个客户都有年龄信息,稀疏索引将排除没有年龄字段的客户,而常规索引将包括所有客户,即使该客户没有年龄值。假设客户集合中有10亿个文档,其中一半的文档没有年龄记录,一个关于年龄的稀疏索引将节省大量内存空间

通过添加{sparse:true}在客户集合的年龄上创建稀疏索引

db.customers.createIndex( { age: 1 }, { sparse: true } );
此查询将使用稀疏索引,因为查询中的条件与稀疏索引非常匹配。我们只想退回年龄大于21岁的客户,如果客户没有年龄档案,我们不包括他们

db.customers.find({age: {$gt:21}});
此查询将不使用稀疏索引,它将返回所有文档,包括没有年龄字段的文档

db.customers.sort({age:1});
db.customers.sort({age:1}).hint({age:1});
此查询将使用稀疏索引,它将仅返回具有年龄字段的文档

db.customers.sort({age:1});
db.customers.sort({age:1}).hint({age:1});

这看起来像是您复制了解释稀疏的注释或工具提示,但忘记说明您的问题是什么。你到底不明白什么?看一个例子对你有帮助吗?你能为你想要达到的目标添加一些上下文吗?这看起来像是你复制了解释稀疏的注释或工具提示,但忘记了说明你的问题是什么。你到底不明白什么?看一个例子对你有帮助吗?你能为你想要达到的目标添加一些背景吗?