반응형
Mongoose를 사용하여 ObjectId로 검색하는 문서를 찾을 수 없습니다.
Campaign.find {client_id:req.param('client_id')}, (error, campaigns) ->
if error
response =
error: error.message
else
for campaign in campaigns
query =
campaign_id: campaign._id
console.log query
CampaignResponse.find query, (err, campaignResponsesCount) ->
console.log campaignResponsesCount
response = campaigns
res.json response
어떤 이유로 결과가 반환 되지 않습니다 . 그러나 CampaignResponse
특정 campaign._id
. 유형 및 캐스팅에 문제가 있다고 확신하지만 어떻게해야할지 모르겠습니다.
도움이 필요하세요?
몇 가지 팁 :
- 명령 줄에서 mongodb에서 동일한 쿼리를 실행하여 결과가 있는지 확인하십시오.
- 스키마에서 "campaign_id"가 ObjectId로 정의되어 있습니까? 그렇다면 ObjectId 유형을 사용하여 검색해보십시오.
예를 들면 :
var ObjectId = require('mongoose').Types.ObjectId;
var query = { campaign_id: new ObjectId(campaign._id) };
이전 (정확한) 답변을 개선하기 위해 내 프로젝트에서 사용합니다.
String.prototype.toObjectId = function() {
var ObjectId = (require('mongoose').Types.ObjectId);
return new ObjectId(this.toString());
};
// Every String can be casted in ObjectId now
console.log('545f489dea12346454ae793b'.toObjectId());
ObjectId를 사용하여 매개 변수를 비교하여 찾는 대신
Campaign.findById {req.param('client_id'),function(err,docs)}....
objectId를 사용하여 문서를 찾을 때 findById가 가장 효율적인 방법입니다.
참고 URL : https://stackoverflow.com/questions/7878557/cant-find-documents-searching-by-objectid-using-mongoose
반응형
'IT TIP' 카테고리의 다른 글
자바 스크립트 기능으로 onclick 액션 변경 (0) | 2020.12.13 |
---|---|
Java에서 버전 문자열을 비교하는 효율적인 방법 (0) | 2020.12.13 |
컬렉션 병합 (0) | 2020.12.13 |
우분투에서 Eclipse IDE를 사용하여 Tomcat 6 서버 생성 (0) | 2020.12.13 |
Linux 쉘에서 16 진수를 ASCII 문자로 변환하는 방법은 무엇입니까? (0) | 2020.12.13 |