Can I index a key in a multidimensional array?

Multi tool use
Say I have a collection with documents like this
"top_key" : [
[
"key" : "value1"
,
"key" : "value2"
],
[
"key" : "value3"
,
"key" : "value4"
]
]
Can I create an index for key
?
mongodb
add a comment |
Say I have a collection with documents like this
"top_key" : [
[
"key" : "value1"
,
"key" : "value2"
],
[
"key" : "value3"
,
"key" : "value4"
]
]
Can I create an index for key
?
mongodb
1
No. the doc reads: "Multikey indexes can be constructed over arrays that hold both scalar values and nested documents". Nested arrays are neither documents nor scalars.
– Alex Blex
Apr 21 '17 at 9:59
add a comment |
Say I have a collection with documents like this
"top_key" : [
[
"key" : "value1"
,
"key" : "value2"
],
[
"key" : "value3"
,
"key" : "value4"
]
]
Can I create an index for key
?
mongodb
Say I have a collection with documents like this
"top_key" : [
[
"key" : "value1"
,
"key" : "value2"
],
[
"key" : "value3"
,
"key" : "value4"
]
]
Can I create an index for key
?
mongodb
mongodb
asked Apr 21 '17 at 9:18
ziyuangziyuang
1,77342756
1,77342756
1
No. the doc reads: "Multikey indexes can be constructed over arrays that hold both scalar values and nested documents". Nested arrays are neither documents nor scalars.
– Alex Blex
Apr 21 '17 at 9:59
add a comment |
1
No. the doc reads: "Multikey indexes can be constructed over arrays that hold both scalar values and nested documents". Nested arrays are neither documents nor scalars.
– Alex Blex
Apr 21 '17 at 9:59
1
1
No. the doc reads: "Multikey indexes can be constructed over arrays that hold both scalar values and nested documents". Nested arrays are neither documents nor scalars.
– Alex Blex
Apr 21 '17 at 9:59
No. the doc reads: "Multikey indexes can be constructed over arrays that hold both scalar values and nested documents". Nested arrays are neither documents nor scalars.
– Alex Blex
Apr 21 '17 at 9:59
add a comment |
1 Answer
1
active
oldest
votes
Looking at this SO answer: MongoDB Query Help - query on values of any key in a sub-object
NOTE: This answer contains suggestion to update the schema in order to achieve desired result.
Change the schema from:
"top_key" : [
[
"key" : "value1"
,
"key" : "value2"
],
[
"key" : "value3"
,
"key" : "value4"
]
]
to something like this:
"top_key" : [
key_name: "key", key_value: "value1"
,
key_name: "key", key_value: "value2"
,
key_name: "key", key_value: "value3"
,
key_name: "key", key_value: "value4"
]
Then you can index on top_key.key_value
and query in a way:
db.settings.ensureIndex( "top_key.key_value" : 1)
db.settings.find( "top_key.key_value" : "value4" )
Do let me know if it helps.
add a 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%2f43538710%2fcan-i-index-a-key-in-a-multidimensional-array%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
Looking at this SO answer: MongoDB Query Help - query on values of any key in a sub-object
NOTE: This answer contains suggestion to update the schema in order to achieve desired result.
Change the schema from:
"top_key" : [
[
"key" : "value1"
,
"key" : "value2"
],
[
"key" : "value3"
,
"key" : "value4"
]
]
to something like this:
"top_key" : [
key_name: "key", key_value: "value1"
,
key_name: "key", key_value: "value2"
,
key_name: "key", key_value: "value3"
,
key_name: "key", key_value: "value4"
]
Then you can index on top_key.key_value
and query in a way:
db.settings.ensureIndex( "top_key.key_value" : 1)
db.settings.find( "top_key.key_value" : "value4" )
Do let me know if it helps.
add a comment |
Looking at this SO answer: MongoDB Query Help - query on values of any key in a sub-object
NOTE: This answer contains suggestion to update the schema in order to achieve desired result.
Change the schema from:
"top_key" : [
[
"key" : "value1"
,
"key" : "value2"
],
[
"key" : "value3"
,
"key" : "value4"
]
]
to something like this:
"top_key" : [
key_name: "key", key_value: "value1"
,
key_name: "key", key_value: "value2"
,
key_name: "key", key_value: "value3"
,
key_name: "key", key_value: "value4"
]
Then you can index on top_key.key_value
and query in a way:
db.settings.ensureIndex( "top_key.key_value" : 1)
db.settings.find( "top_key.key_value" : "value4" )
Do let me know if it helps.
add a comment |
Looking at this SO answer: MongoDB Query Help - query on values of any key in a sub-object
NOTE: This answer contains suggestion to update the schema in order to achieve desired result.
Change the schema from:
"top_key" : [
[
"key" : "value1"
,
"key" : "value2"
],
[
"key" : "value3"
,
"key" : "value4"
]
]
to something like this:
"top_key" : [
key_name: "key", key_value: "value1"
,
key_name: "key", key_value: "value2"
,
key_name: "key", key_value: "value3"
,
key_name: "key", key_value: "value4"
]
Then you can index on top_key.key_value
and query in a way:
db.settings.ensureIndex( "top_key.key_value" : 1)
db.settings.find( "top_key.key_value" : "value4" )
Do let me know if it helps.
Looking at this SO answer: MongoDB Query Help - query on values of any key in a sub-object
NOTE: This answer contains suggestion to update the schema in order to achieve desired result.
Change the schema from:
"top_key" : [
[
"key" : "value1"
,
"key" : "value2"
],
[
"key" : "value3"
,
"key" : "value4"
]
]
to something like this:
"top_key" : [
key_name: "key", key_value: "value1"
,
key_name: "key", key_value: "value2"
,
key_name: "key", key_value: "value3"
,
key_name: "key", key_value: "value4"
]
Then you can index on top_key.key_value
and query in a way:
db.settings.ensureIndex( "top_key.key_value" : 1)
db.settings.find( "top_key.key_value" : "value4" )
Do let me know if it helps.
answered Nov 14 '18 at 15:00
Nishutosh SharmaNishutosh Sharma
1,16421528
1,16421528
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.
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%2f43538710%2fcan-i-index-a-key-in-a-multidimensional-array%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
Ouff5mAs0MTHfDp4,tBoVS1v78zg
1
No. the doc reads: "Multikey indexes can be constructed over arrays that hold both scalar values and nested documents". Nested arrays are neither documents nor scalars.
– Alex Blex
Apr 21 '17 at 9:59