node.js - 从没有排序键的 dynamodb 批量条件删除
问题描述
我正在将我的数据库从 mongodb 转移到 dynamo db。我的表中的删除函数有问题,其中labName 是分区键,serialNumber 是我的排序键,并且有一个 ID 作为 feedId 我想从给出 labName 且 feedId 不在的表中删除所有记录(数组身份证)。我在 mongo 中这样做,如下面提到的代码
BatchWriteItem 有没有一种方法,我可以在没有排序键的情况下为 feedId 添加条件。
let dbHandle = await getMongoDbHandle(dbName);
let query = {
feedid: {$nin: feedObjectIds}
}
let output = await dbModule.removePromisify(dbHandle,
dbModule.collectionNames.feeds, query);
解决方案
使用 DynamoDB 时,您只能对记录执行条件检索 (GET)/删除 (DELETE),并且仅当您提供了主键的所有属性时。例如:
- 对于简单主键,您只需为分区键提供一个值。
- 对于复合主键,您必须同时提供分区键和排序键的值。
推荐阅读
- r - 为 VIM 包加载库时出现问题
- apache - Apache 2 将 http 重定向到 https 缺少授权标头但不使用 https
- reactjs - React 样式的组件为道具添加自定义逻辑?
- c++ - 变量值通过多个测试用例保留
- google-cloud-functions - 什么会导致flyway在启动时不自动检测迁移,但在运行时能够这样做?
- bash - 从与另一个大文件的行匹配的大文件中查找并提取一行
- java - BubbleSort 和这种类型排序的区别
- python-3.x - 嵌套 for 循环中的 Seaborn 绘图
- macos - 与 Homebrew 一起安装的最新版本的 Chromium 不播放视频 - 如何解决?
- bash - 如何防止 vim 进程替换(即 git ls 回显与重定向到 vim)