如何在尚未创建的时间序列 mongodb 集合中插入文档?

How do I insert a document on a time series mongodb collection that isn’t created yet?

我想将文档插入到时间序列集合中(只有在第一次插入文档时才会创建)。这是可能的? 使用类似 db.insertOne(upsert, params) 的东西,其中 'params' 表示它是一个时间序列集合。

如果时间序列集合 不存在,则无法使用 insert 命令创建它。

你必须执行一个 if 条件来检查集合是否预先存在并执行插入操作。

您可以使用 findOne 技巧,您只投影 _id 键并检查是否返回文档,尽管它会尝试 运行 创建数据库命令即使它存在但其中有 0 个文档,它也比 List-Collection 命令和循环遍历数据库中的集合更好。

var foundDoc = db.collection.findOne({}, {"_id": 1});
if (foundDoc == null) {
  db.createCollection(
    "collection",
    {
       "timeseries": {
          "timeField": "timestamp",
       },
    });
}