반응형
MongoDB가 _id 배열의 위치를 선택하시겠습니까?
mongo db에서는 SQL과 같이 컬렉션의 문서를 선택할 수 있습니다.
SELECT * FROM collection WHERE _id IN (1,2,3,4);
혹은 내가 가지고 있는 경우_id array
1개씩 선택한 후 재작성해야 합니다.array/object
결과를 얻을 수 있을까요?
간단 :)
db.collection.find( { _id : { $in : [1,2,3,4] } } );
취득처: https://www.mongodb.com/docs/manual/reference/operator/query/in/ #mongodb-syslog-op.-in
왜냐하면 mongodb는bson
bson의 경우 중요한 속성 유형입니다.그리고 그 이유는_id
이ObjectId
다음과 같이 사용해야 합니다.
db.collection.find( { _id : { $in : [ObjectId('1'),ObjectId('2')] } } );
및 인mongodb compass
다음과 같이 사용:
{ "_id" : { $in : [ObjectId('1'),ObjectId('2')] } }
주의: 문자열의 objectId에는24
길이.
이거 드셔보세요
var ids = ["5883d387971bb840b7399130","5883d389971bb840b7399131","5883d38a971bb840b7399132"];
var oids = [];
ids.forEach(function(item){
oids.push(new ObjectId(item));
});
.find({ _id: {$in : oids}})
이 코드 목록에는 사용자 컬렉션의 ID 배열이 있습니다.
var list = ["5883d387971bb840b7399130","5883d389971bb840b7399131","5883d38a971bb840b7399132"]
.find({ _id: {$in : list}})
조건부로 사용자 및 다른 필드에 의해 찾고 싶다면 아래처럼 쉽게 할 수 있습니다.aggregate
그리고.match
const p_id = patient_id;
let fetchingReports = await Reports.aggregate([
...(p_id
? [
{
$match: {
createdBy: mongoose.Types.ObjectId(id),
patient_id: p_id,
},
},
]
: [
{
$match: {
createdBy: mongoose.Types.ObjectId(id),
},
},
언급URL : https://stackoverflow.com/questions/7713363/mongodb-select-where-in-array-of-id
반응형
'programing' 카테고리의 다른 글
매일 특정 시간에 MySQL 이벤트 스케줄러 (0) | 2023.09.02 |
---|---|
봄: 프로필에서 AND를 수행하는 방법? (0) | 2023.09.02 |
파일 API - BLOB에서 JSON으로 (0) | 2023.03.26 |
전달할 헤더 매개 변수가 있는 Img src 경로 (0) | 2023.03.26 |
스프링 부트 - Application.properties의 커스텀 변수 (0) | 2023.03.26 |