小编joh*_*rgo的帖子

使用Pymongo和Flask检索MongoDB中的最后一个文档

我正在一个Raspberry Pi项目上,该项目收集天气测量值并将其存储在Mongo数据库中,如下所示:

{
    "_id": {
        "$oid": "577975c874fece5775117209"
    },
    "timestamp": {
        "$date": "2016-07-03T20:30:00.995Z"
    },
    "temp_f": 68.9,
    "temp_c": 20.5,
    "humidity": 50,
    "pressure": 29.5
}
Run Code Online (Sandbox Code Playgroud)

数据正好进入Mongo数据库。接下来,我试图构建一个基于Flask的仪表板,使我能够查看记录的数据。在仪表板的其中一个页面上,我想显示当前记录的值,因此我需要做的是提取上一次测量并将其传递给flask模板以呈现到浏览器。

我在这里找到了可以使用的帖子:

data = db.measurements.find().limit(1).sort({"$natural": -1})
Run Code Online (Sandbox Code Playgroud)

但是自然调用似乎并不是有效的选择find

这有效:

measurement = mongo.db.measurements.find_one()
Run Code Online (Sandbox Code Playgroud)

它拉回了一个随机测量值,然后我可以将其传递给烧瓶模板,但是如何使用sort获得最新的测量值?

我试过了:

measurement = mongo.db.measurements.find_one().sort([("timestamp", -1)])
Run Code Online (Sandbox Code Playgroud)

但这会产生属性错误: AttributeError: 'dict' object has no attribute 'sort'

我也尝试过:

cursor = mongo.db.measurements.find().limit(1).sort({"timestamp": -1})
Run Code Online (Sandbox Code Playgroud)

但这也不起作用。

我在这里缺少什么,有人可以给我快速,完整的解决方法吗?

mongodb pymongo

4
推荐指数
1
解决办法
4395
查看次数

JavaScript 正则表达式取代 YAML frontmatter

我正在构建一个 nodejs 包,它从文件中读取 YAML 前面的内容。我使用 YAML 包获取 YAML,将其转换为 JSON 并对其进行更改。

现在我希望能够替换整个 frontmatter,但找不到正则表达式来执行此操作。

templateFile = templateFile.replace(SOME-REGEX-EXPRESSION, YAML.stringify(frontmatter)
Run Code Online (Sandbox Code Playgroud)

我可以在这里使用什么正则表达式来完成此任务?

javascript regex yaml-front-matter

1
推荐指数
1
解决办法
243
查看次数

Delphi读取Windows 11系统路径

我正在开发在 64 位 Windows 11 上运行的 Delphi 12 应用程序。我的应用程序需要从注册表中读取路径(用户路径和系统路径),并且我的应用程序可以读取用户路径,但不能读取系统路径。

我使用“工具”->“选项”->“清单”要求管理员权限才能执行该程序,当我运行该应用程序时,它会提示我授权管理员模式,所以我知道它的一部分正在工作。

我已经在互联网上搜索了好几天寻找解决方案,并且尝试了我能找到的所有选项(Embarcadero 的网站本周关闭,这使得所有这一切变得更加困难,因为我在那里找到了许多文章参考文档)并且每次,代码成功打开指定的键 ( SYSTEM\CurrentControlSet\Control\Session Manager\Environment),但无法读取其中的任何属性(如path属性)。

我什至尝试TStringList使用该键下的所有属性填充 a

我创建了一个示例应用程序来演示这一点,您可以在https://github.com/johnwargo/Path-Test-2024找到它。

procedure PopulateList(pathList: TListBox; source: String; rootKey: HKEY;
  regKey, regProperty: String);
var
  Reg: TRegistry;
  pathArray: Tarray<String>;
  msg, pathStr: String;

begin
  LogMessage(Format('Reading "%s" Path from "%s"', [source, regKey]));
  // Reg := TRegistry.Create(KEY_ALL_ACCESS);
  // Reg := TRegistry.Create(KEY_ALL_ACCESS OR KEY_WOW64_64KEY);
  // Reg := TRegistry.Create(KEY_EXECUTE);
  // Reg := TRegistry.Create(KEY_EXECUTE OR KEY_WOW64_64KEY);
  // Reg := TRegistry.Create(KEY_READ OR KEY_WOW64_32KEY);
  Reg := TRegistry.Create(KEY_READ …
Run Code Online (Sandbox Code Playgroud)

windows delphi registry path

-1
推荐指数
1
解决办法
191
查看次数