首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动力系统中Schema.Types.ObjectId的等价性

动力系统中Schema.Types.ObjectId的等价性
EN

Stack Overflow用户
提问于 2018-10-06 12:02:24
回答 2查看 1.6K关注 0票数 4

我正在使用Node创建一个代码片段管理器,并将其作为一个学习项目来响应,我们可以在我工作的地方使用这个项目。

我以前用Express、Mongoose和mLab来设置它。带着学习和挑战自己的心态,我想转向使用AWS的DynamoDB。

我发现Dynaamoose,这将是一个很大的帮助,因为API是几乎相同的猫鼬。然而,我似乎无法理解如何重新创建Schema.Types.ObjectId所做的工作。

代码语言:javascript
复制
const SnippetSchema = new Schema({
id: {
    type: String,
    default: shortid.generate(),
    hashKey: true
},
user: {
    type: Schema.Types.ObjectId,
    ref: 'users'
},
category: {
    type: Schema.Types.ObjectId,
    ref: 'categories'
},
code: {
    type: String,
    required: true
},
title: {
    type: String,
    required: true
}});

它的格式不是很完美,但本质上如何以相同的方式引用我的用户和类别呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-06 20:17:17

与Mongoose和MongoDB不同,Dynamoose和DynamoDB没有默认的_id属性。因此,在DynamoDB/Dynamoose中没有像Schema.Types.ObjectId这样的东西。

看起来,您想要做的事情类似于.populate

就我的项目而言,我只是使用.get手动处理所有关联。

在上面的架构示例中,id属性将是您的主键。在DynamoDB中,主键必须是唯一的,否则它们将覆盖现有项(除非您设置了一些检查)。

从这里开始,我认为您可以构建一个系统,为每个文档生成id,然后通过该id将其关联起来。我通常对这个属性使用String s,但我认为它在技术上可以是任何受支持的DynamoDB属性类型。

希望这能让你开始工作。如果没有意义,或者如果你需要更多的帮助,可以随意评论。作为动力GitHub项目的一个成员,我非常活跃,所以也可以随意地在它们上创建问题或东西。我尝试每天检查一次堆栈溢出上的Dynamoose标记。我的联系方式也很容易找到。

祝你在动力之行好运,如果你遇到任何其他问题或有任何其他问题,请告诉我!!

票数 2
EN

Stack Overflow用户

发布于 2020-09-16 15:44:36

我猜你想要这样

代码语言:javascript
复制
const SnippetSchema = new Schema({
   id: {
     type: String,
     default: shortid.generate(),
     hashKey: true
   },
   parent: User,
   category:{
     type: String,
     required: true,
     index: {
       global: true
     }
   },
   code: {
     type: String,
     required: true
   },
   title: {
     type: String,
     required: true
   }
});

所以当.get(id)

将返回“父”对象的所有数据,该对象包含用户数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52678866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档