MongoDB 中的 RAM 消耗(通过 mongoose)
RAM Consumption in MongoDB via mongoose
您好,我是 Mongo 数据库中聚合的新手。我的要求是将发送到服务器的设备 GPS 数据保存到我的 mongoDB collection 即 GPS 数据中。目前我使用 Mongoose 的 GPS 数据架构如下
SerialNo:{
type:Number,
required:true,
index:true
},
Loc: {
type: [Number], // [<longitude>, <latitude>]
index: '2d',// create the geospatial index
required:true
},
Time:{
type:Date
},
Speed:{
type:Number,
default:0.0
},
Message_length:{
type:Number
},
No_Satellites:{
type:Number
},
Course:{
type:Number
},
Direction:{
type:String
},
gpsLocked:{
type:Boolean
},
isRealTime:{
type:Boolean
},
createdAt:{
type:Date,
default:Date.now
}
我发现这对我的设计来说可能不可行,所以在 mongoDB 网站上进行了大量搜索后,我发现了这个 link Analyzing Time Series Data Using the Aggregation Framework and Hadoop,我发现他们正在使用与我的要求类似的文档结构如下
data:[
{speed:NAN,time:NAN},
{speed:NAN,time:NAN},
{speed:NAN,time:NAN}
]
我的主要问题是,如果我将我的 Loc 和时间戳转换为上述格式,当我将 500 个 GPS 数据保存到单个文档时,我是否会节省因索引而消耗的内存,或者是否会因索引而节省内存消耗?将 500 个不同的文档保存到我的 collection?
如果您要转换成这种格式
data:[
{Loc:NAN,time:NAN},
{Loc:NAN,time:NAN},
]
然后你必须索引完整的数组,如果你想用Loc
查询。这将是 MultiKey index
整体索引大小可能更高,因为在这种情况下,mongodb 必须在数组中索引文档。在前面的例子中,它只需要单独索引 Loc
。
如果您使用 SerialNo
和 data
.
构建复合索引,您的查询会很高效
但是,您的更新会很高效,因为您只需更新数据中的一个条目。
请注意,MongoDB 每个文档的大小限制为 16MB。我不确定您想在单个文档中放入多少个时间戳。
您好,我是 Mongo 数据库中聚合的新手。我的要求是将发送到服务器的设备 GPS 数据保存到我的 mongoDB collection 即 GPS 数据中。目前我使用 Mongoose 的 GPS 数据架构如下
SerialNo:{
type:Number,
required:true,
index:true
},
Loc: {
type: [Number], // [<longitude>, <latitude>]
index: '2d',// create the geospatial index
required:true
},
Time:{
type:Date
},
Speed:{
type:Number,
default:0.0
},
Message_length:{
type:Number
},
No_Satellites:{
type:Number
},
Course:{
type:Number
},
Direction:{
type:String
},
gpsLocked:{
type:Boolean
},
isRealTime:{
type:Boolean
},
createdAt:{
type:Date,
default:Date.now
}
我发现这对我的设计来说可能不可行,所以在 mongoDB 网站上进行了大量搜索后,我发现了这个 link Analyzing Time Series Data Using the Aggregation Framework and Hadoop,我发现他们正在使用与我的要求类似的文档结构如下
data:[
{speed:NAN,time:NAN},
{speed:NAN,time:NAN},
{speed:NAN,time:NAN}
]
我的主要问题是,如果我将我的 Loc 和时间戳转换为上述格式,当我将 500 个 GPS 数据保存到单个文档时,我是否会节省因索引而消耗的内存,或者是否会因索引而节省内存消耗?将 500 个不同的文档保存到我的 collection?
如果您要转换成这种格式
data:[
{Loc:NAN,time:NAN},
{Loc:NAN,time:NAN},
]
然后你必须索引完整的数组,如果你想用Loc
查询。这将是 MultiKey index
整体索引大小可能更高,因为在这种情况下,mongodb 必须在数组中索引文档。在前面的例子中,它只需要单独索引 Loc
。
如果您使用 SerialNo
和 data
.
但是,您的更新会很高效,因为您只需更新数据中的一个条目。
请注意,MongoDB 每个文档的大小限制为 16MB。我不确定您想在单个文档中放入多少个时间戳。