如何在基于NodeJS express + mongoose的REST API上的每个POST请求上创建新集合?
有许多教程使用相同的硬编码集合,但找不到允许在每个新POST上创建新集合的教程。
例如:
model.js
var mongoose = require('mongoose');
var mySchema = new mongoose.Schema({
//Scehma Here
});
module.exports = mongoose.model('mycollection', mySchema);
和server.js
var devices = require('./model');
router.route('/devices')
.post(function(req, res) {
var device = new devices();
device._id = req.body.id;
device.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Success!' });
});
})
这会在mycollection
为每个新POST
但是,我需要将创建的每个新对象隔离到一个新集合中。
是否可以在每个POST上创建一个新集合,其中相同的架构和集合名称为req.body.id
用于@chridam和@MykolaBorysyuk的评论
数据将来自许多物联网设备的时间序列数据。
在第一次连接时,设备会发出POST
请求,其ID
类似IMEI,然后它会每5秒连续发送一次数据。
存储类似这样的内容:http://blog.mongodb.org/post/65517193370/schema-design-for-time-series-data-in-mongodb
我认为为每个设备创建一个新的集合将是一个好主意,如果这是一个糟糕的选择(我是DevOps和开发新手),请为我提出一个更好的方法来处理上述用例。这将是100个具有连续时间序列数据的设备。
谢谢。
答案 0 :(得分:0)
我认为@MykolaBorysyuk的建议是有效的,但是如果您想使用capped collections来限制每个设备将保留的文档数量,那么最好使用单独的集合。