相关疑难解决方法(0)

如何在NoSql数据库(MongoDB)中强制执行外键?

假设我有一些文档集合,例如:

{ "_id" : 0 , "owner":0 "name":"Doc1"},{ "_id" : 1 , "owner":1, "name":"Doc1"}, etc
Run Code Online (Sandbox Code Playgroud)

而另一方面,业主被表示为一个单独的集合:

{ "_id" : 0 , "username":"John"}, { "_id" : 1 , "username":"Sam"}
Run Code Online (Sandbox Code Playgroud)

如何在插入文档时确保以正确的方式引用用户.在旧式RDBMS中,可以使用外键轻松完成.

我知道我可以从我的业务代码中检查插入的正确性,但是如果攻击者篡改我对服务器的请求并将"所有者":100放入,那么Mongo不会抛出任何异常.

我想知道如何在真实的单词应用程序中处理这种情况.

先感谢您!

mongodb nosql

17
推荐指数
3
解决办法
1万
查看次数

如果通过 Mongoose 在 Mongodb 中的另一个文档中存在引用,则有什么更好的方法可以防止文档被删除?

我正在使用以下堆栈创建一个 webapp:

  • 节点
  • 表达
  • MongoDB
  • 猫鼬

我已将应用程序构建为 MVC 结构。

有 Customer、OrderReceived 和 OrderSent 模式。OrderReceived 和 OrderSent 架构引用客户架构。Abridge 模式结构如下:

顾客

const mongoose = require('mongoose');

const customerSchema = mongoose.Schema({
  companyName: String,
  firstName: { type: String, required: true},
  lastName: { type: String, required: true}
});

module.exports = mongoose.model('Customer', customerSchema);
Run Code Online (Sandbox Code Playgroud)

订单已经收到

const mongoose = require('mongoose');

const orderReceivedSchema = mongoose.Schema({
  receivedDate: { type: Date, required: true},
  customer: {type: mongoose.Schema.Types.ObjectId, ref: 'Customer', required: true}
});

module.exports = mongoose.model('OrderReceived', orderReceivedSchema);
Run Code Online (Sandbox Code Playgroud)

订单已发送

const mongoose = require('mongoose');

const orderSentSchema …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js express mongodb-query

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

标签 统计

mongodb ×2

express ×1

mongodb-query ×1

mongoose ×1

node.js ×1

nosql ×1