假设我有一些文档集合,例如:
{ "_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不会抛出任何异常.
我想知道如何在真实的单词应用程序中处理这种情况.
先感谢您!
我正在使用以下堆栈创建一个 webapp:
我已将应用程序构建为 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)