我有一個schema:
這個schema有一個sub doc 叫address,插入address資料之後,address會自己有一個對應的_id.
我的問題是,每次查詢這個address的時候,是否需要先找到這個account,然後遍歷account的address,或者可以直接透過address的_id來找到對應的address?
var AccountSchema = new mongoose.Schema({
email: { type: String, unique: true },
password: { type: String},
phone: { type: String},
name: {type: String},
address: {type: [{
name: { type: String},
phone: { type: String},
type: { type: String},
addr: { type: String}
}]},
});
首先你所理解的
subDoc
的定义就错了,subDoc
应该也是一个由单独的Schema
->Model
生成的实例, 简单来说, 就是得有一个子文档的Schema
另外多說一句, 如果你沒有
自定义的 SchemaTypes
的话, 原来的写法就是错的. 而且就算定义了, 属性type
也不可以指向一個對象因為mongoose 預設的合法
那麼幾個, 除文檔里肯定有幾個。此以外, 如果你沒有定義任何自訂Type, 那在type 屬性後面任何其他的值都是會報錯的.SchemaTypes
SchemaTypes
就String, Number, Array, ObjectId, Mixed...
就String, Number, Array, ObjectId, Mixed...