How to update multilevels embed array on mongoTemplate
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I use spring-data-mongo mongoTemplate to update embed document.
and following is my data model:
{
"_id":"3KNAM390aENt",
"field":"test001",
"name":"001",
"sort":0,
"embedFields1":{
"_id":"1",
"field":"field1",
"name":"name1",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields2":{
"_id":"22",
"field":"field22",
"name":"name22",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields3":{
"_id":"3",
"field":"field3",
"name":"name3",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields4":{
"_id":"4",
"field":"field4",
"name":"name4",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields5":{
"_id":"5",
"field":"field5",
"name":"name5",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields6":{
"_id":"66",
"field":"field66",
"name":"name66",
"limit":1,
"canBeChange":true,
"needAudit":false
}
}
}
}
}
}
}
I know how to use $ to update the maching first embedFields1 ,
but how to update the embed embedFields2,embedFields3,embedFields4.......?
mongodb spring-data-mongodb
add a comment |
I use spring-data-mongo mongoTemplate to update embed document.
and following is my data model:
{
"_id":"3KNAM390aENt",
"field":"test001",
"name":"001",
"sort":0,
"embedFields1":{
"_id":"1",
"field":"field1",
"name":"name1",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields2":{
"_id":"22",
"field":"field22",
"name":"name22",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields3":{
"_id":"3",
"field":"field3",
"name":"name3",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields4":{
"_id":"4",
"field":"field4",
"name":"name4",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields5":{
"_id":"5",
"field":"field5",
"name":"name5",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields6":{
"_id":"66",
"field":"field66",
"name":"name66",
"limit":1,
"canBeChange":true,
"needAudit":false
}
}
}
}
}
}
}
I know how to use $ to update the maching first embedFields1 ,
but how to update the embed embedFields2,embedFields3,embedFields4.......?
mongodb spring-data-mongodb
add a comment |
I use spring-data-mongo mongoTemplate to update embed document.
and following is my data model:
{
"_id":"3KNAM390aENt",
"field":"test001",
"name":"001",
"sort":0,
"embedFields1":{
"_id":"1",
"field":"field1",
"name":"name1",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields2":{
"_id":"22",
"field":"field22",
"name":"name22",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields3":{
"_id":"3",
"field":"field3",
"name":"name3",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields4":{
"_id":"4",
"field":"field4",
"name":"name4",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields5":{
"_id":"5",
"field":"field5",
"name":"name5",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields6":{
"_id":"66",
"field":"field66",
"name":"name66",
"limit":1,
"canBeChange":true,
"needAudit":false
}
}
}
}
}
}
}
I know how to use $ to update the maching first embedFields1 ,
but how to update the embed embedFields2,embedFields3,embedFields4.......?
mongodb spring-data-mongodb
I use spring-data-mongo mongoTemplate to update embed document.
and following is my data model:
{
"_id":"3KNAM390aENt",
"field":"test001",
"name":"001",
"sort":0,
"embedFields1":{
"_id":"1",
"field":"field1",
"name":"name1",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields2":{
"_id":"22",
"field":"field22",
"name":"name22",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields3":{
"_id":"3",
"field":"field3",
"name":"name3",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields4":{
"_id":"4",
"field":"field4",
"name":"name4",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields5":{
"_id":"5",
"field":"field5",
"name":"name5",
"limit":1,
"canBeChange":true,
"needAudit":false,
"embedFields6":{
"_id":"66",
"field":"field66",
"name":"name66",
"limit":1,
"canBeChange":true,
"needAudit":false
}
}
}
}
}
}
}
I know how to use $ to update the maching first embedFields1 ,
but how to update the embed embedFields2,embedFields3,embedFields4.......?
mongodb spring-data-mongodb
mongodb spring-data-mongodb
edited Jan 3 at 15:58


bpedroso
2,18711927
2,18711927
asked Jan 3 at 14:33
haoyuhaoyu
1
1
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
To navigate your structure you can use a syntax like this:
"firstlevel.secondlevel.thirdlevel
"
Meaning you could create a dynamic logic for creating that string and using it inside mongodb commands.
Example
Find
db.your_collection.find({"embedFields1.embedFields2.embedFields3._id" : "2"})
Update
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}})
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}}) this can not work ; the official document explain to use db.getCollection('arbitratorField').update( {} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} ) but when i use it ,return a error : No array filter found for identifier 'e1' in path 'embedFields.$[e1].embedFields.$[e2].name'
– haoyu
Jan 4 at 1:47
The $ syntax is used to navigate an array structure. You don't have an array , you have a dictionary representation so you can go through your nested document without $. The query I posted has been executed on my machine with your document structure and it works. Let me know :)
– MetalMad
Jan 4 at 9:51
I know why you can success , because I give the data model is not complete . The complete data model is the dictionary container array .
– haoyu
Jan 4 at 12:09
{"_id" : "3KNAM390aENt", "embedFields" : [{"_id" : "1","embedFields" : [ {"_id" : "2","field" : "field2"}, {"_id" : "22","field" : "field22"}]}, {"_id" : "11","embedFields" : [{"_id" : "2","field" : "field2",}, {"_id" : "22","field" : "field22",}]}, {"_id" : "Wx3uzi","embedFields" : [ { "_id" : "vti7KT","name" : "test 22 update"}, {"_id" : "MOVy1i","name" : "test 2222 update"} ] } ] }
– haoyu
Jan 4 at 12:19
I can use follow common to update document on mongo shell , but I don't know how to use it with java spring-data-mongo's mongoTemplate; db.getCollection('field').update( {_id:"3KNAM390aENt"} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} )
– haoyu
Jan 4 at 12:27
|
show 1 more comment
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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%2f54024351%2fhow-to-update-multilevels-embed-array-on-mongotemplate%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
To navigate your structure you can use a syntax like this:
"firstlevel.secondlevel.thirdlevel
"
Meaning you could create a dynamic logic for creating that string and using it inside mongodb commands.
Example
Find
db.your_collection.find({"embedFields1.embedFields2.embedFields3._id" : "2"})
Update
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}})
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}}) this can not work ; the official document explain to use db.getCollection('arbitratorField').update( {} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} ) but when i use it ,return a error : No array filter found for identifier 'e1' in path 'embedFields.$[e1].embedFields.$[e2].name'
– haoyu
Jan 4 at 1:47
The $ syntax is used to navigate an array structure. You don't have an array , you have a dictionary representation so you can go through your nested document without $. The query I posted has been executed on my machine with your document structure and it works. Let me know :)
– MetalMad
Jan 4 at 9:51
I know why you can success , because I give the data model is not complete . The complete data model is the dictionary container array .
– haoyu
Jan 4 at 12:09
{"_id" : "3KNAM390aENt", "embedFields" : [{"_id" : "1","embedFields" : [ {"_id" : "2","field" : "field2"}, {"_id" : "22","field" : "field22"}]}, {"_id" : "11","embedFields" : [{"_id" : "2","field" : "field2",}, {"_id" : "22","field" : "field22",}]}, {"_id" : "Wx3uzi","embedFields" : [ { "_id" : "vti7KT","name" : "test 22 update"}, {"_id" : "MOVy1i","name" : "test 2222 update"} ] } ] }
– haoyu
Jan 4 at 12:19
I can use follow common to update document on mongo shell , but I don't know how to use it with java spring-data-mongo's mongoTemplate; db.getCollection('field').update( {_id:"3KNAM390aENt"} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} )
– haoyu
Jan 4 at 12:27
|
show 1 more comment
To navigate your structure you can use a syntax like this:
"firstlevel.secondlevel.thirdlevel
"
Meaning you could create a dynamic logic for creating that string and using it inside mongodb commands.
Example
Find
db.your_collection.find({"embedFields1.embedFields2.embedFields3._id" : "2"})
Update
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}})
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}}) this can not work ; the official document explain to use db.getCollection('arbitratorField').update( {} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} ) but when i use it ,return a error : No array filter found for identifier 'e1' in path 'embedFields.$[e1].embedFields.$[e2].name'
– haoyu
Jan 4 at 1:47
The $ syntax is used to navigate an array structure. You don't have an array , you have a dictionary representation so you can go through your nested document without $. The query I posted has been executed on my machine with your document structure and it works. Let me know :)
– MetalMad
Jan 4 at 9:51
I know why you can success , because I give the data model is not complete . The complete data model is the dictionary container array .
– haoyu
Jan 4 at 12:09
{"_id" : "3KNAM390aENt", "embedFields" : [{"_id" : "1","embedFields" : [ {"_id" : "2","field" : "field2"}, {"_id" : "22","field" : "field22"}]}, {"_id" : "11","embedFields" : [{"_id" : "2","field" : "field2",}, {"_id" : "22","field" : "field22",}]}, {"_id" : "Wx3uzi","embedFields" : [ { "_id" : "vti7KT","name" : "test 22 update"}, {"_id" : "MOVy1i","name" : "test 2222 update"} ] } ] }
– haoyu
Jan 4 at 12:19
I can use follow common to update document on mongo shell , but I don't know how to use it with java spring-data-mongo's mongoTemplate; db.getCollection('field').update( {_id:"3KNAM390aENt"} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} )
– haoyu
Jan 4 at 12:27
|
show 1 more comment
To navigate your structure you can use a syntax like this:
"firstlevel.secondlevel.thirdlevel
"
Meaning you could create a dynamic logic for creating that string and using it inside mongodb commands.
Example
Find
db.your_collection.find({"embedFields1.embedFields2.embedFields3._id" : "2"})
Update
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}})
To navigate your structure you can use a syntax like this:
"firstlevel.secondlevel.thirdlevel
"
Meaning you could create a dynamic logic for creating that string and using it inside mongodb commands.
Example
Find
db.your_collection.find({"embedFields1.embedFields2.embedFields3._id" : "2"})
Update
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}})
answered Jan 3 at 17:29


MetalMadMetalMad
189217
189217
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}}) this can not work ; the official document explain to use db.getCollection('arbitratorField').update( {} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} ) but when i use it ,return a error : No array filter found for identifier 'e1' in path 'embedFields.$[e1].embedFields.$[e2].name'
– haoyu
Jan 4 at 1:47
The $ syntax is used to navigate an array structure. You don't have an array , you have a dictionary representation so you can go through your nested document without $. The query I posted has been executed on my machine with your document structure and it works. Let me know :)
– MetalMad
Jan 4 at 9:51
I know why you can success , because I give the data model is not complete . The complete data model is the dictionary container array .
– haoyu
Jan 4 at 12:09
{"_id" : "3KNAM390aENt", "embedFields" : [{"_id" : "1","embedFields" : [ {"_id" : "2","field" : "field2"}, {"_id" : "22","field" : "field22"}]}, {"_id" : "11","embedFields" : [{"_id" : "2","field" : "field2",}, {"_id" : "22","field" : "field22",}]}, {"_id" : "Wx3uzi","embedFields" : [ { "_id" : "vti7KT","name" : "test 22 update"}, {"_id" : "MOVy1i","name" : "test 2222 update"} ] } ] }
– haoyu
Jan 4 at 12:19
I can use follow common to update document on mongo shell , but I don't know how to use it with java spring-data-mongo's mongoTemplate; db.getCollection('field').update( {_id:"3KNAM390aENt"} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} )
– haoyu
Jan 4 at 12:27
|
show 1 more comment
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}}) this can not work ; the official document explain to use db.getCollection('arbitratorField').update( {} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} ) but when i use it ,return a error : No array filter found for identifier 'e1' in path 'embedFields.$[e1].embedFields.$[e2].name'
– haoyu
Jan 4 at 1:47
The $ syntax is used to navigate an array structure. You don't have an array , you have a dictionary representation so you can go through your nested document without $. The query I posted has been executed on my machine with your document structure and it works. Let me know :)
– MetalMad
Jan 4 at 9:51
I know why you can success , because I give the data model is not complete . The complete data model is the dictionary container array .
– haoyu
Jan 4 at 12:09
{"_id" : "3KNAM390aENt", "embedFields" : [{"_id" : "1","embedFields" : [ {"_id" : "2","field" : "field2"}, {"_id" : "22","field" : "field22"}]}, {"_id" : "11","embedFields" : [{"_id" : "2","field" : "field2",}, {"_id" : "22","field" : "field22",}]}, {"_id" : "Wx3uzi","embedFields" : [ { "_id" : "vti7KT","name" : "test 22 update"}, {"_id" : "MOVy1i","name" : "test 2222 update"} ] } ] }
– haoyu
Jan 4 at 12:19
I can use follow common to update document on mongo shell , but I don't know how to use it with java spring-data-mongo's mongoTemplate; db.getCollection('field').update( {_id:"3KNAM390aENt"} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} )
– haoyu
Jan 4 at 12:27
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}}) this can not work ; the official document explain to use db.getCollection('arbitratorField').update( {} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} ) but when i use it ,return a error : No array filter found for identifier 'e1' in path 'embedFields.$[e1].embedFields.$[e2].name'
– haoyu
Jan 4 at 1:47
db.your_collection.update({"embedFields1.embedFields2.embedFields3._id" : "3"} , {$set : {"embedFields1.embedFields2.embedFields3.name" : "test"}}) this can not work ; the official document explain to use db.getCollection('arbitratorField').update( {} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} ) but when i use it ,return a error : No array filter found for identifier 'e1' in path 'embedFields.$[e1].embedFields.$[e2].name'
– haoyu
Jan 4 at 1:47
The $ syntax is used to navigate an array structure. You don't have an array , you have a dictionary representation so you can go through your nested document without $. The query I posted has been executed on my machine with your document structure and it works. Let me know :)
– MetalMad
Jan 4 at 9:51
The $ syntax is used to navigate an array structure. You don't have an array , you have a dictionary representation so you can go through your nested document without $. The query I posted has been executed on my machine with your document structure and it works. Let me know :)
– MetalMad
Jan 4 at 9:51
I know why you can success , because I give the data model is not complete . The complete data model is the dictionary container array .
– haoyu
Jan 4 at 12:09
I know why you can success , because I give the data model is not complete . The complete data model is the dictionary container array .
– haoyu
Jan 4 at 12:09
{"_id" : "3KNAM390aENt", "embedFields" : [{"_id" : "1","embedFields" : [ {"_id" : "2","field" : "field2"}, {"_id" : "22","field" : "field22"}]}, {"_id" : "11","embedFields" : [{"_id" : "2","field" : "field2",}, {"_id" : "22","field" : "field22",}]}, {"_id" : "Wx3uzi","embedFields" : [ { "_id" : "vti7KT","name" : "test 22 update"}, {"_id" : "MOVy1i","name" : "test 2222 update"} ] } ] }
– haoyu
Jan 4 at 12:19
{"_id" : "3KNAM390aENt", "embedFields" : [{"_id" : "1","embedFields" : [ {"_id" : "2","field" : "field2"}, {"_id" : "22","field" : "field22"}]}, {"_id" : "11","embedFields" : [{"_id" : "2","field" : "field2",}, {"_id" : "22","field" : "field22",}]}, {"_id" : "Wx3uzi","embedFields" : [ { "_id" : "vti7KT","name" : "test 22 update"}, {"_id" : "MOVy1i","name" : "test 2222 update"} ] } ] }
– haoyu
Jan 4 at 12:19
I can use follow common to update document on mongo shell , but I don't know how to use it with java spring-data-mongo's mongoTemplate; db.getCollection('field').update( {_id:"3KNAM390aENt"} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} )
– haoyu
Jan 4 at 12:27
I can use follow common to update document on mongo shell , but I don't know how to use it with java spring-data-mongo's mongoTemplate; db.getCollection('field').update( {_id:"3KNAM390aENt"} , {$set : {"embedFields.$[e1].embedFields.$[e2].name" : "test"}}, {arrayFilters:[{'e1._id':'Wx3uzi'},{'e2._id':'vti7KT'}]} )
– haoyu
Jan 4 at 12:27
|
show 1 more 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.
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%2f54024351%2fhow-to-update-multilevels-embed-array-on-mongotemplate%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