我们如何确保mongoDb中的数据完整性?
我正在尝试从关系数据库(mysql)数据迁移到nosql(mongoDb)。但如何确保mongodb中的数据完整性呢。我发现我们无法在服务器端执行此操作。我应该在应用程序端使用什么来处理数据完整性 例如:我有两个表user和task。两者都有共同的userId字段。若我在任务表中添加一个新条目,它应该检查用户表中是否存在userid。 这是其他要求之一,如添加约束、更新值等 MongoDB不支持外键。它用于避免连接 MongoDB不支持服务器端外键关系。但有时我们需要关联,因此MongoDB应用程序使用两种方法之一关联文档:我们如何确保mongoDb中的数据完整性?,mongodb,nosql,Mongodb,Nosql,我正在尝试从关系数据库(mysql)数据迁移到nosql(mongoDb)。但如何确保mongodb中的数据完整性呢。我发现我们无法在服务器端执行此操作。我应该在应用程序端使用什么来处理数据完整性 例如:我有两个表user和task。两者都有共同的userId字段。若我在任务表中添加一个新条目,它应该检查用户表中是否存在userid。 这是其他要求之一,如添加约束、更新值等 MongoDB不支持外键。它用于避免连接 MongoDB不支持服务器端外键关系。但有时我们需要关联,因此MongoDB应用
student
{
_id: ObjectId(...),
name: 'Jane',
courses: [
{
name: 'Biology 101',
mark: 85,
id:bio101
},
]
}
- MongoDb是nosql,因此没有连接
- 数据存储为BSON文档,因此没有外键约束
- 在添加任务文档之前签入应用程序,以确定其是否具有有效的用户
因此,要么嵌入(以便相关数据始终存在,就在文档中)要么放弃一致性数据的希望。我不是问从RDB到nosql的数据的一致性,而是问mongoDb中的数据完整性,例如:我有两个表user和task。两者都有共同的userId字段。若我在任务表中添加一个新条目,它应该检查用户表中是否存在userid。这是一项要求,其他要求(如添加约束、更新值等)与外键和联接没有任何关系。他需要的是外键,而不是连接。@SergioTulentsev看一下用户示例(rahul)。它似乎使用了外键。@SergioTulentsev联接与此无关,但我是为它编写的user@HiteshMundra:我的意思是“你为什么提到连接?它们在这里完全不相关”问题中没有提到连接。你确定要在你的场景中使用连接吗?如果可以的话,只是做一个poc。一致的数据不是编写正确软件的要求吗?@TamasHegedus:可能是,可能不是。这与问题/答案有什么关系?
student
{
_id: ObjectId(...),
name: 'Jane',
courses: [
{
name: 'Biology 101',
mark: 85,
id:bio101
},
]
}