订单表结构(动态外键):
var orderSchema = new mongoose.Schema({
uid: { type: String, required: true }, // 用户id
amount: { type: Number, required: true },
oType: { type: Number, required: true }, // 订单类型
status: { type: Number, required: true }, // 订单的状态:1完成 2未完成 3失效
})
用户表:
var userSchema = new mongoose.Schema({
phone: String,
status: String,
createdAt: Date,
updatedAt: Date
})
请问,1怎么设置这个外键,跟用户的主键一致呢?
2,mongodb设置自增id怎么设置呢?
3,有没有我自动增加了一个用户,对应的对单列表就自动增加一个订单呢?
MongoDB的_id是自增的——但不是整数自增。这里的自增只指MongoDB的_id原理确实与先后顺序有关,但是由于类型是独有的ObjectId,因此无法通过常规思路去处理。事实上ObjectId你可以当作是一个索引中的一个key,其对应的是一个timestamp。但是有个小小问题,在我的记忆里看过一篇文章,当文档更新时,若文档增长数据量超出原来的空间准备,那么这条数据会被删除,而重新在集尾插入。但是我想,对于ObjectId而言是没有什么影响的。实现整数自增,依然需要代码逻辑实现。