4
자바 스크립트 해시를 반복하고 콜렉션을 통해 집계를 호출하는 특정 작업을 수행하는 자바 스크립트 루프가 있습니다.
$ match 함수에 대한 집계 쿼리에 변수를 삽입 할 수 있었지만 $ project 함수는 사용할 수 없습니다.
해시 키를 통해 일치시킨 다음 방금 일치시킨 문서의 값과 함께 해시 값을 표시하려고합니다. 이러한 해시 값과 레이블은 미리 문서에 없습니다.
var cmtss = {};
for (var item in cursor['result'])
{
var prov = cursor['result'][item]['prov_group'];
cmtss[cursor['result'][item]['name']] = prov;
}
for (var item in cmtss)
{
var cmts = "$" + cmtss[item];
result = db.modems.aggregate({ $match : { cmts: item } } ,
{ $project : {
ip : "$ip",
model : "$model",
cmts : "$cmts",
prov_group : cmts } });
printjson(result);
}
보시다시피 제공되는 키와 일치하도록 $ 일치를 입력하겠습니다. 하지만 그 경기에서 필자는 추가 한 새로운 필드를 포함하여 3 개의 필드를 표시하려고하지만 그 값은 cmtss의 해시 값입니다. 값 앞에 $ 연산자를 사용하거나 사용하지 않고 시도했습니다. 결과 문서에 단순히 prov_group을 전혀 표시하지 않습니다.
어떻게 든 $ add를 사용해야합니까?