我非常熟悉 MongoDB 中的缓存是如何与操作系统的内存映射文件相关的。但是,我对它的细节更感兴趣...
假设,我在一个集合中有这种格式的文档:
{
_id: ObjectId("..."),
first_name: "x",
last_name: "y",
email: "z"
}
如果
findOne({_id: ObjectId("...")})
执行命令,则整个文档将被放入缓存中。在此之后,如果我运行findOne({_id: ObjectId("...")}, {email: 1})
,是否会使用缓存(请注意,在最后一个命令中,我只对电子邮件字段感兴趣)?如果我发出
findOne({_id: ObjectId("...")}, {first_name: 1, last_name: 1})
,是整个文档都放入缓存,还是只是投影字段?也就是说,如果我findOne({_id: ObjectId("...")})
在前面的命令之后运行,会不会用到缓存呢?
谢谢,
兹拉特科