这是示例JSON
示例JSON:
[
{
"_id": "123456789",
"YEAR": "2019",
"VERSION": "2019.Version",
"QUESTION_GROUPS": [
{
"QUESTIONS": [
{
"QUESTION_NAME": "STATE_CODE",
"QUESTION_VALUE": "MH"
},
{
"QUESTION_NAME": "COUNTY_NAME",
"QUESTION_VALUE": "IN"
}
]
},
{
"QUESTIONS": [
{
"QUESTION_NAME": "STATE_CODE",
"QUESTION_VALUE": "UP"
},
{
"QUESTION_NAME": "COUNTY_NAME",
"QUESTION_VALUE": "IN"
}
]
}
]
}
]
正在使用的查询:
db.collection.find({},
{
"QUESTION_GROUPS.QUESTIONS.QUESTION_NAME": "STATE_CODE"
})
我的要求是检索所有 QUESTION_VALUE ,其 QUESTION_NAME 等于 STATE_CODE 。
谢谢。
答案 0 :(得分:0)
如果我一切都好,您想要做的就是:
db.collection.find(
{
"QUESTION_GROUPS.QUESTIONS.QUESTION_NAME": "STATE_CODE"
},
{
"QUESTION_GROUPS.QUESTIONS.QUESTION_VALUE": 1
})
注意:对于任何具有QUESTION_GROUPS.QUESTIONS.QUESTION_NAME且具有该值的文档,您将获得所有“ QUESTION_VALUE”。
注意2:您还将获得_Id。默认情况下。
如果您想跳过这些问题,则可能需要使用“聚合”,然后展开“ QUESTION_GROUPS”->“ QUESTIONS”。这样,您可以跳过无关的结果和_id字段。
答案 1 :(得分:0)
听起来您想展开数组并仅获取问题值
尝试一下
import { LoginComponent } from './login.component';
import { LoginService } from '../../services/login.service';
import { AuthenticationService } from './auth.service';
describe('Component: Login', () => {
let component: LoginComponent;
let service: LoginService;
let spy: any;
beforeEach(() => {
service = new LoginService();
component = new LoginComponent(service);
});
afterEach(() => {
service = null;
component = null;
});
describe('Method: handleLogin', () => {
it('should call the `redirectToAuth` method on the `LoginService`', () => {
spy = spyOn(service, 'redirectToAuth');
component.handleLogin();
expect(spy).toHaveBeenCalled();
});
});
});