[MONGODB] 방법) (MongoDB의 네이티브 findOne의 필드 이름으로 변수를 사용하는 방법?
MONGODB방법) (MongoDB의 네이티브 findOne의 필드 이름으로 변수를 사용하는 방법?
나는 MongoDB를이 데이터를 가지고 :
{
"name": "Amey",
"country": "India",
"region": "Dhule,Maharashtra"
}
나는 쿼리에 변수로 필드 이름을 통과하면서 데이터를 검색 할 수 있습니다.
작동하지 않습니다 다음 :
var name = req.params.name;
var value = req.params.value;
collection.findOne({name: value}, function(err, item) {
res.send(item);
});
어떻게 두 필드의 이름과 값의 동적 유지 MongoDB를 조회 할 수 있습니다?
해결법
-
==============================
1.동적 쿼리 개체의 키를 설정해야합니다 :
동적 쿼리 개체의 키를 설정해야합니다 :
var name = req.params.name; var value = req.params.value; var query = {}; query[name] = value; collection.findOne(query, function (err, item) { ... });
당신이 할 때 {이름 : 값을}, 키는 문자열 '이름'이 아닌 변수 이름의 값입니다.
-
==============================
2.그냥]에서 변수를 넣어
그냥]에서 변수를 넣어
var name=req.params.name; var value = req.params.value; collection.findOne({[name]:value}, function(err, item) { res.send(item); });
-
==============================
3.난 당신이 중첩 된 필드에만 (안 값)에 관한 질의를 만들려고 노력하는 경우 명확히하고자, 같은 당신이이 문서의 필드 "이름"을 조회 할 경우 :
난 당신이 중첩 된 필드에만 (안 값)에 관한 질의를 만들려고 노력하는 경우 명확히하고자, 같은 당신이이 문서의 필드 "이름"을 조회 할 경우 :
{ loc: [0, 3], unit: { name : "playername" } }
- (업데이 트를 사용하여 내 경우처럼)이 작동합니다
mdb.cords.updateOne( {_id: ObjectID(someid)}, {$set: {[query]: newValue}}, function (err, result) { ... } }
간단히 괄호 [쿼리]를 둘러싸는 것은 오히려 경로 문자 아니지만 것을 MongoDB를 알려줍니다.
from https://stackoverflow.com/questions/17039018/how-to-use-a-variable-as-a-field-name-in-mongodb-native-findone by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 몽구스 / MongoDB를에 Multifield 인덱스 만들기 (0) | 2019.12.05 |
---|---|
[MONGODB] MongoDB의 배열에 배열 쿼리 (0) | 2019.12.05 |
[MONGODB] MongoDB의 레코드 톤 이상 느린 매김 (0) | 2019.12.05 |
[MONGODB] MongoDB를 거부 연결 (111) errno를 (0) | 2019.12.05 |
[MONGODB] 몽구스 찾기 / 업데이트 하위 문서 (0) | 2019.12.05 |