0
私はmongodbに慣れていて、aggregate
と$lookup
という文章の次の文書で、私は本当に混乱した質問に出会った。
私は、ユーザーのスキーマ
const userSchema = new Schema({
userName: {type: String, index:{unique: true}},
password: String,
avatar: String
})
コメントスキーマ
const commentSchema = new Schema({
post: {type: Schema.Types.ObjectId, ref:'postModel'},
author:{type: Schema.Types.ObjectId, ref:'userModel'},
content: String,
createTime: Date
})
やモデルcommentModel= mongoose.model('commentModel', commentSchema)
userModel = mongoose.model('userModel', userSchema)
を持って、私は
commentModel.aggregate.([{$lookup: {
from: 'userModel',
localField: 'author',
foreignField: '_id',
as: 'common'
}])
を行うしかし、私は、クエリでは一般的に空得ます。 dbのデータによれば、私はこの結果を得るべきではありません。検索後、私はまだ間違いを見つけることができません。
最後に、aggregate
メソッドを使用する必要があります。$lookup
を参照文書に使用する必要があります。それは意味がありますか?
おかげである必要があり、私は短いため、私はモデルの一部を言及しなかった、私の質問を編集しましたしかし、私はこれらのモデルを作成しました。 – rookiect
更新された質問に従って、コレクション名は 'usermodels'でなければなりません。あなたはmongodbと 'show collections'に直接接続して確認できます – sidgate
ありがとうsidgate。あなたは問題を指摘し、私はmongoシェルに接続し、 'userModel'の代わりに' usermodels'を使用します、それは動作します!しかし、私の初期の練習、例えば '参照をつける 'のようなときに' userModel'を取るとうまくいきます。とにかく、あなたの答えに感謝、それは私がクレイジーになるのを防ぐ:)良い一日を! – rookiect