【发布时间】:2016-06-17 17:22:31
【问题描述】:
我对 noSQL 数据库非常陌生。我已经开始了我在 noSQL 中使用 mongodb 数据库的旅程。直到今天我还在使用 mySQL 和 MS SQL Server。我知道如何创建表格和它们之间的关系。但这个 noSQL 概念与此完全不同。所以,我在问这个问题。我希望我能早点学会使用 noSQL 数据库。
我在 mongodb 中使用了以下查询来创建集合并在其中插入数据:
db.createCollection('Parties');
db.parties.insert({partyName:"Best Sellers", mobileNo:"9876543214"});
db.parties.insert({partyName:"National Traders", mobileNo:"9876543215"});
db.createCollection('items');
db.items.insert({itemName:"Item-A", size:"12"});
db.items.insert({itemName:"Item-B", size:"8"});
db.createCollection('orders');
从视觉上看,我的订单将包含以下字段:
Order No : AB/123
Date of Order: 17-06-2016
Party Name : National Traders // It will be a select
Item Name Quantity Rate Amount
--------------------------------------------------------
Item-A //Select 200 20 4000
Item-B //Select 100 30 3000
--------------------------------------------------------
300 7000
我的问题是:
如何查询 mongodb 以插入订单集合?我从未使用过嵌套集合之类的东西。任何人都可以给我一个例子吗??
更新:
这是我的关系数据库中的数据库图:
如何将其转换为 mongodb 样式??
更新2:
我已尝试在 Node.js 中为模型顺序添加此代码:
var mongoose = require('mongoose');
var orderSchema = new mongoose.Schema({
salesOrderId: String,
orderDate: Date,
party: {type: Schema.Types.ObjectId, ref:'Party'},
items:[{{type: Schema.Types.ObjectId, ref:'Item'}, quantity: Number, rate: Number}],
dispatches:{
invoiceId: Number,
dispatchDate: Date,
items: [{{type: Schema.Types.ObjectId, ref:'Item'}, quantity: Number, rate: Number}]
}
});
mongoose.model('Order', orderSchema);
【问题讨论】:
-
party-items-order 的关系是什么——你能解释一下吗?
-
@profesor79 请查看更新后的问题。
-
今晚会做。架构看起来很完美!
-
@profesor79 感谢您的回复。