How to query on nested object using loopback model query?
up vote
1
down vote
favorite
I have this data on mongodb in a table named "Alerts" in geojson format
[
"_id" : ObjectId("5be40b8099d5b81e6115d517"),
"title" : "Real-time earthquake",
"priority" : "high",
"status" : NumberInt("1"),
"extAlertData" :
"type" : "Feature",
"properties" :
"mag" : 4.11,
"place" : "12km S of Tres Pinos,
CA",
"time" : 1541163534230,
,
"geometry" :
"type" : "Point",
"coordinates" : [
-121.3146667,
36.6801667,
6.48
]
,
"id" : "nc73105276"
"_id" : ObjectId("5be401c39b9e021a4c1a5c80"),
"title" : "Real-time earthquake",
"priority" : "high",
"status" : NumberInt("1"),
"extAlertData" :
"type" : "Feature",
"properties" :
"mag" : 4.5,
"place" : "107km NW of Tobelo,
Indonesia",
"time" : 1541665816710,
,
"geometry" :
"type" : "Point",
"coordinates" : [
127.2763,
2.3671,
31.55
]
,
"id" : "us1000hp6t"
]
I want to retrieve the field "id" which is nested inside "extAlertData" and time using model query.
Expected Output :
[
id:'nc73105276',
time:'1541163534230'
,
id:'us1000hp6t',
time:'1541665816710'
]
Following query does not working.
db.Alerts.find(fields : "extAlertData.id": true,
function (err, Alerts)
//process alert extAlertData.id
});
Query is retrieving the following error:
TypeError: Cannot read property 'id' of undefined
How can I query using fields filter in mongoDB? I am using loopback framework of node js.
Thanks in advance.
node.js mongodb mongodb-query aggregation-framework loopback
add a comment |
up vote
1
down vote
favorite
I have this data on mongodb in a table named "Alerts" in geojson format
[
"_id" : ObjectId("5be40b8099d5b81e6115d517"),
"title" : "Real-time earthquake",
"priority" : "high",
"status" : NumberInt("1"),
"extAlertData" :
"type" : "Feature",
"properties" :
"mag" : 4.11,
"place" : "12km S of Tres Pinos,
CA",
"time" : 1541163534230,
,
"geometry" :
"type" : "Point",
"coordinates" : [
-121.3146667,
36.6801667,
6.48
]
,
"id" : "nc73105276"
"_id" : ObjectId("5be401c39b9e021a4c1a5c80"),
"title" : "Real-time earthquake",
"priority" : "high",
"status" : NumberInt("1"),
"extAlertData" :
"type" : "Feature",
"properties" :
"mag" : 4.5,
"place" : "107km NW of Tobelo,
Indonesia",
"time" : 1541665816710,
,
"geometry" :
"type" : "Point",
"coordinates" : [
127.2763,
2.3671,
31.55
]
,
"id" : "us1000hp6t"
]
I want to retrieve the field "id" which is nested inside "extAlertData" and time using model query.
Expected Output :
[
id:'nc73105276',
time:'1541163534230'
,
id:'us1000hp6t',
time:'1541665816710'
]
Following query does not working.
db.Alerts.find(fields : "extAlertData.id": true,
function (err, Alerts)
//process alert extAlertData.id
});
Query is retrieving the following error:
TypeError: Cannot read property 'id' of undefined
How can I query using fields filter in mongoDB? I am using loopback framework of node js.
Thanks in advance.
node.js mongodb mongodb-query aggregation-framework loopback
You can use$group
aggregation stage with$push
accumulator. Something like thisdb.collection.aggregate([ "$group": "_id": null, "ids": "$push": "id": "$extAlertData.id", "time": "$extAlertData.properties.time" ])
– Anthony Winzlet
Nov 9 at 7:16
@AnthonyWinzlet thank you so much.Its working perfect.
– Annie
Nov 9 at 9:13
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I have this data on mongodb in a table named "Alerts" in geojson format
[
"_id" : ObjectId("5be40b8099d5b81e6115d517"),
"title" : "Real-time earthquake",
"priority" : "high",
"status" : NumberInt("1"),
"extAlertData" :
"type" : "Feature",
"properties" :
"mag" : 4.11,
"place" : "12km S of Tres Pinos,
CA",
"time" : 1541163534230,
,
"geometry" :
"type" : "Point",
"coordinates" : [
-121.3146667,
36.6801667,
6.48
]
,
"id" : "nc73105276"
"_id" : ObjectId("5be401c39b9e021a4c1a5c80"),
"title" : "Real-time earthquake",
"priority" : "high",
"status" : NumberInt("1"),
"extAlertData" :
"type" : "Feature",
"properties" :
"mag" : 4.5,
"place" : "107km NW of Tobelo,
Indonesia",
"time" : 1541665816710,
,
"geometry" :
"type" : "Point",
"coordinates" : [
127.2763,
2.3671,
31.55
]
,
"id" : "us1000hp6t"
]
I want to retrieve the field "id" which is nested inside "extAlertData" and time using model query.
Expected Output :
[
id:'nc73105276',
time:'1541163534230'
,
id:'us1000hp6t',
time:'1541665816710'
]
Following query does not working.
db.Alerts.find(fields : "extAlertData.id": true,
function (err, Alerts)
//process alert extAlertData.id
});
Query is retrieving the following error:
TypeError: Cannot read property 'id' of undefined
How can I query using fields filter in mongoDB? I am using loopback framework of node js.
Thanks in advance.
node.js mongodb mongodb-query aggregation-framework loopback
I have this data on mongodb in a table named "Alerts" in geojson format
[
"_id" : ObjectId("5be40b8099d5b81e6115d517"),
"title" : "Real-time earthquake",
"priority" : "high",
"status" : NumberInt("1"),
"extAlertData" :
"type" : "Feature",
"properties" :
"mag" : 4.11,
"place" : "12km S of Tres Pinos,
CA",
"time" : 1541163534230,
,
"geometry" :
"type" : "Point",
"coordinates" : [
-121.3146667,
36.6801667,
6.48
]
,
"id" : "nc73105276"
"_id" : ObjectId("5be401c39b9e021a4c1a5c80"),
"title" : "Real-time earthquake",
"priority" : "high",
"status" : NumberInt("1"),
"extAlertData" :
"type" : "Feature",
"properties" :
"mag" : 4.5,
"place" : "107km NW of Tobelo,
Indonesia",
"time" : 1541665816710,
,
"geometry" :
"type" : "Point",
"coordinates" : [
127.2763,
2.3671,
31.55
]
,
"id" : "us1000hp6t"
]
I want to retrieve the field "id" which is nested inside "extAlertData" and time using model query.
Expected Output :
[
id:'nc73105276',
time:'1541163534230'
,
id:'us1000hp6t',
time:'1541665816710'
]
Following query does not working.
db.Alerts.find(fields : "extAlertData.id": true,
function (err, Alerts)
//process alert extAlertData.id
});
Query is retrieving the following error:
TypeError: Cannot read property 'id' of undefined
How can I query using fields filter in mongoDB? I am using loopback framework of node js.
Thanks in advance.
node.js mongodb mongodb-query aggregation-framework loopback
node.js mongodb mongodb-query aggregation-framework loopback
edited Nov 9 at 7:04
Anthony Winzlet
12.2k41038
12.2k41038
asked Nov 9 at 6:56
Annie
113
113
You can use$group
aggregation stage with$push
accumulator. Something like thisdb.collection.aggregate([ "$group": "_id": null, "ids": "$push": "id": "$extAlertData.id", "time": "$extAlertData.properties.time" ])
– Anthony Winzlet
Nov 9 at 7:16
@AnthonyWinzlet thank you so much.Its working perfect.
– Annie
Nov 9 at 9:13
add a comment |
You can use$group
aggregation stage with$push
accumulator. Something like thisdb.collection.aggregate([ "$group": "_id": null, "ids": "$push": "id": "$extAlertData.id", "time": "$extAlertData.properties.time" ])
– Anthony Winzlet
Nov 9 at 7:16
@AnthonyWinzlet thank you so much.Its working perfect.
– Annie
Nov 9 at 9:13
You can use
$group
aggregation stage with $push
accumulator. Something like this db.collection.aggregate([ "$group": "_id": null, "ids": "$push": "id": "$extAlertData.id", "time": "$extAlertData.properties.time" ])
– Anthony Winzlet
Nov 9 at 7:16
You can use
$group
aggregation stage with $push
accumulator. Something like this db.collection.aggregate([ "$group": "_id": null, "ids": "$push": "id": "$extAlertData.id", "time": "$extAlertData.properties.time" ])
– Anthony Winzlet
Nov 9 at 7:16
@AnthonyWinzlet thank you so much.Its working perfect.
– Annie
Nov 9 at 9:13
@AnthonyWinzlet thank you so much.Its working perfect.
– Annie
Nov 9 at 9:13
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
var yourdata =;
var cursor = db.collection('Alerts').find();
cursor.each(function(err, item)
if (item != null)
var yourid = item.extAlertData.id;
var yourtime = item.extAlertData.properties.time;
var pushdata = id: yourid,time: yourtime;
yourdata.push(pushdata);
);
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
var yourdata =;
var cursor = db.collection('Alerts').find();
cursor.each(function(err, item)
if (item != null)
var yourid = item.extAlertData.id;
var yourtime = item.extAlertData.properties.time;
var pushdata = id: yourid,time: yourtime;
yourdata.push(pushdata);
);
add a comment |
up vote
0
down vote
var yourdata =;
var cursor = db.collection('Alerts').find();
cursor.each(function(err, item)
if (item != null)
var yourid = item.extAlertData.id;
var yourtime = item.extAlertData.properties.time;
var pushdata = id: yourid,time: yourtime;
yourdata.push(pushdata);
);
add a comment |
up vote
0
down vote
up vote
0
down vote
var yourdata =;
var cursor = db.collection('Alerts').find();
cursor.each(function(err, item)
if (item != null)
var yourid = item.extAlertData.id;
var yourtime = item.extAlertData.properties.time;
var pushdata = id: yourid,time: yourtime;
yourdata.push(pushdata);
);
var yourdata =;
var cursor = db.collection('Alerts').find();
cursor.each(function(err, item)
if (item != null)
var yourid = item.extAlertData.id;
var yourtime = item.extAlertData.properties.time;
var pushdata = id: yourid,time: yourtime;
yourdata.push(pushdata);
);
var yourdata =;
var cursor = db.collection('Alerts').find();
cursor.each(function(err, item)
if (item != null)
var yourid = item.extAlertData.id;
var yourtime = item.extAlertData.properties.time;
var pushdata = id: yourid,time: yourtime;
yourdata.push(pushdata);
);
var yourdata =;
var cursor = db.collection('Alerts').find();
cursor.each(function(err, item)
if (item != null)
var yourid = item.extAlertData.id;
var yourtime = item.extAlertData.properties.time;
var pushdata = id: yourid,time: yourtime;
yourdata.push(pushdata);
);
answered Nov 9 at 7:41
LDS
1906
1906
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53221113%2fhow-to-query-on-nested-object-using-loopback-model-query%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You can use
$group
aggregation stage with$push
accumulator. Something like thisdb.collection.aggregate([ "$group": "_id": null, "ids": "$push": "id": "$extAlertData.id", "time": "$extAlertData.properties.time" ])
– Anthony Winzlet
Nov 9 at 7:16
@AnthonyWinzlet thank you so much.Its working perfect.
– Annie
Nov 9 at 9:13