반응형
mongodb-native 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를 쿼리하려면 어떻게해야합니까?
쿼리 개체의 키를 동적으로 설정해야합니다.
var name = req.params.name;
var value = req.params.value;
var query = {};
query[name] = value;
collection.findOne(query, function (err, item) { ... });
그렇게 할 때 {name: value}
키는 'name'
변수 값이 아니라 문자열 name
입니다.
변수를 []에 넣으십시오.
var name=req.params.name;
var value = req.params.value;
collection.findOne({[name]:value}, function(err, item) {
res.send(item);
});
이 문서에서 "이름"필드를 쿼리하려는 경우와 같이 중첩 된 필드 (값이 아님)에 대해서만 쿼리하려는 경우 다음과 같이 명확히하고 싶습니다.
{
loc: [0, 3],
unit: {
name : "playername"
}
}
이것은 작동합니다 (제 경우와 같이-업데이트 사용).
mdb.cords.updateOne(
{_id: ObjectID(someid)},
{$set: {[query]: newValue}},
function (err, result) {
...
}
}
단순히 [query]
대괄호로 묶으면 mongodb는 그것이 리터럴이 아니라 경로임을 알려줍니다.
반응형
'Nice programing' 카테고리의 다른 글
힘내 : "변경되었지만 커밋되지 않은"상태에서 완고하게 멈춘 파일 2 개를 되 돌리는 방법은 무엇입니까? (0) | 2020.10.11 |
---|---|
일식에서 줄 번호의 왼쪽에있는 노란색 가로 화살표는 무엇을합니까? (0) | 2020.10.11 |
도메인이 다른 동일한 IP / 서버에서 여러 Node.js 사이트를 호스팅하려면 어떻게해야합니까? (0) | 2020.10.11 |
ipython 노트북에 목차를 추가하려면 어떻게해야합니까? (0) | 2020.10.11 |
Xcode에서 빌드 타이밍을 활성화하는 방법은 무엇입니까? (0) | 2020.10.11 |