복붙노트

[MONGODB] MongoDB를 $ 조회 OBJECTID GET 빈 배열?

MONGODB

MongoDB를 $ 조회 OBJECTID GET 빈 배열?

나는 문서 다음 몽구스에서 $ 조회와 MongoDB를 연습 집계에 새로 온 사람, 그리고 난 질문이 정말 혼란 만났다.

나는 사용자 스키마를

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의 데이터에 따르면,이 결과를 얻을 안된다. 난 여전히 실수 찾을 수없는 검색 한 후.

마지막으로, 나는 내가 참조 문서에 $ 조회를 사용해야하므로,이 말이 선량, 집계 방법을 사용해야합니까?

해결법

  1. ==============================

    1.$ 조회의에서 필드 컬렉션 이름이 아닌 모델 변수 이름입니다. 이 같은 모델을 초기화하는 경우 그래서

    $ 조회의에서 필드 컬렉션 이름이 아닌 모델 변수 이름입니다. 이 같은 모델을 초기화하는 경우 그래서

    db.model('User', userSchema)
    

    다음 검색 쿼리해야

    commentModel.aggregate([{$lookup: {
      from: 'users',
      localField: 'author',
      foreignField: '_id',
      as: 'common'
    }])
    
  2. from https://stackoverflow.com/questions/45481049/mongodb-lookup-objectid-get-empty-array by cc-by-sa and MIT license