Mongodb. How to query using Regex.IsMatch for array of strings
Could you please explain how to use Regex.IsMatch on the IEnumerable property.
I tried to do it like this:
var portfolios = Collection.AsQueryable();
portfolios = portfolios.Where(portfolio => portfolio.KeyWords.Any(keyword => Regex.IsMatch(keyword, "hal", RegexOptions.IgnoreCase)));
where KeyWords
is the property - public IEnumerable<string> KeyWords get; set;
as a result i see that i recieved such query:
aggregate([ "$match" : "KeyWords" : "$elemMatch" : "" : /hal/i ])
But it seems that this query does not work because the return result is 0.
To clarify what i need. I have a document with structure like:
"_id" : "5b488f1f666ba93004f990e0",
"KeyWords" : [
"New portfolio",
"Bayern",
"Halana",
"6"
],
What i want is to find all documents with specific query by Regex.IsMatch for objects in KeyWords array.
For example i want to find all documents with where Keywords contains object that contains text "hal"
Thanks
.net mongodb mongodb-query iqueryable
add a comment |
Could you please explain how to use Regex.IsMatch on the IEnumerable property.
I tried to do it like this:
var portfolios = Collection.AsQueryable();
portfolios = portfolios.Where(portfolio => portfolio.KeyWords.Any(keyword => Regex.IsMatch(keyword, "hal", RegexOptions.IgnoreCase)));
where KeyWords
is the property - public IEnumerable<string> KeyWords get; set;
as a result i see that i recieved such query:
aggregate([ "$match" : "KeyWords" : "$elemMatch" : "" : /hal/i ])
But it seems that this query does not work because the return result is 0.
To clarify what i need. I have a document with structure like:
"_id" : "5b488f1f666ba93004f990e0",
"KeyWords" : [
"New portfolio",
"Bayern",
"Halana",
"6"
],
What i want is to find all documents with specific query by Regex.IsMatch for objects in KeyWords array.
For example i want to find all documents with where Keywords contains object that contains text "hal"
Thanks
.net mongodb mongodb-query iqueryable
Well the conditions are incorrect. What are you actually trying to match in the document? WhyAny()
? Are you trying to match a "list of regular expressions" or an "expression against any of a list of strings in the document"? Showing the document you expect to match makes it much clearer.
– Neil Lunn
Nov 13 '18 at 9:21
Neil Lunn, could you please explain how to create correct condition. What i actually have is document something like "_id" : "5b488f1f666ba93004f990e0", "KeyWords" : [ "New portfolio", "Bayern", "Halana", "6" ], and what i want is find all documents that have keyword with regex.match
– Maks
Nov 14 '18 at 11:41
add a comment |
Could you please explain how to use Regex.IsMatch on the IEnumerable property.
I tried to do it like this:
var portfolios = Collection.AsQueryable();
portfolios = portfolios.Where(portfolio => portfolio.KeyWords.Any(keyword => Regex.IsMatch(keyword, "hal", RegexOptions.IgnoreCase)));
where KeyWords
is the property - public IEnumerable<string> KeyWords get; set;
as a result i see that i recieved such query:
aggregate([ "$match" : "KeyWords" : "$elemMatch" : "" : /hal/i ])
But it seems that this query does not work because the return result is 0.
To clarify what i need. I have a document with structure like:
"_id" : "5b488f1f666ba93004f990e0",
"KeyWords" : [
"New portfolio",
"Bayern",
"Halana",
"6"
],
What i want is to find all documents with specific query by Regex.IsMatch for objects in KeyWords array.
For example i want to find all documents with where Keywords contains object that contains text "hal"
Thanks
.net mongodb mongodb-query iqueryable
Could you please explain how to use Regex.IsMatch on the IEnumerable property.
I tried to do it like this:
var portfolios = Collection.AsQueryable();
portfolios = portfolios.Where(portfolio => portfolio.KeyWords.Any(keyword => Regex.IsMatch(keyword, "hal", RegexOptions.IgnoreCase)));
where KeyWords
is the property - public IEnumerable<string> KeyWords get; set;
as a result i see that i recieved such query:
aggregate([ "$match" : "KeyWords" : "$elemMatch" : "" : /hal/i ])
But it seems that this query does not work because the return result is 0.
To clarify what i need. I have a document with structure like:
"_id" : "5b488f1f666ba93004f990e0",
"KeyWords" : [
"New portfolio",
"Bayern",
"Halana",
"6"
],
What i want is to find all documents with specific query by Regex.IsMatch for objects in KeyWords array.
For example i want to find all documents with where Keywords contains object that contains text "hal"
Thanks
.net mongodb mongodb-query iqueryable
.net mongodb mongodb-query iqueryable
edited Nov 14 '18 at 11:51
Maks
asked Nov 13 '18 at 9:13
MaksMaks
512
512
Well the conditions are incorrect. What are you actually trying to match in the document? WhyAny()
? Are you trying to match a "list of regular expressions" or an "expression against any of a list of strings in the document"? Showing the document you expect to match makes it much clearer.
– Neil Lunn
Nov 13 '18 at 9:21
Neil Lunn, could you please explain how to create correct condition. What i actually have is document something like "_id" : "5b488f1f666ba93004f990e0", "KeyWords" : [ "New portfolio", "Bayern", "Halana", "6" ], and what i want is find all documents that have keyword with regex.match
– Maks
Nov 14 '18 at 11:41
add a comment |
Well the conditions are incorrect. What are you actually trying to match in the document? WhyAny()
? Are you trying to match a "list of regular expressions" or an "expression against any of a list of strings in the document"? Showing the document you expect to match makes it much clearer.
– Neil Lunn
Nov 13 '18 at 9:21
Neil Lunn, could you please explain how to create correct condition. What i actually have is document something like "_id" : "5b488f1f666ba93004f990e0", "KeyWords" : [ "New portfolio", "Bayern", "Halana", "6" ], and what i want is find all documents that have keyword with regex.match
– Maks
Nov 14 '18 at 11:41
Well the conditions are incorrect. What are you actually trying to match in the document? Why
Any()
? Are you trying to match a "list of regular expressions" or an "expression against any of a list of strings in the document"? Showing the document you expect to match makes it much clearer.– Neil Lunn
Nov 13 '18 at 9:21
Well the conditions are incorrect. What are you actually trying to match in the document? Why
Any()
? Are you trying to match a "list of regular expressions" or an "expression against any of a list of strings in the document"? Showing the document you expect to match makes it much clearer.– Neil Lunn
Nov 13 '18 at 9:21
Neil Lunn, could you please explain how to create correct condition. What i actually have is document something like "_id" : "5b488f1f666ba93004f990e0", "KeyWords" : [ "New portfolio", "Bayern", "Halana", "6" ], and what i want is find all documents that have keyword with regex.match
– Maks
Nov 14 '18 at 11:41
Neil Lunn, could you please explain how to create correct condition. What i actually have is document something like "_id" : "5b488f1f666ba93004f990e0", "KeyWords" : [ "New portfolio", "Bayern", "Halana", "6" ], and what i want is find all documents that have keyword with regex.match
– Maks
Nov 14 '18 at 11:41
add a comment |
0
active
oldest
votes
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%2f53277499%2fmongodb-how-to-query-using-regex-ismatch-for-array-of-strings%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
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%2f53277499%2fmongodb-how-to-query-using-regex-ismatch-for-array-of-strings%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
Well the conditions are incorrect. What are you actually trying to match in the document? Why
Any()
? Are you trying to match a "list of regular expressions" or an "expression against any of a list of strings in the document"? Showing the document you expect to match makes it much clearer.– Neil Lunn
Nov 13 '18 at 9:21
Neil Lunn, could you please explain how to create correct condition. What i actually have is document something like "_id" : "5b488f1f666ba93004f990e0", "KeyWords" : [ "New portfolio", "Bayern", "Halana", "6" ], and what i want is find all documents that have keyword with regex.match
– Maks
Nov 14 '18 at 11:41