Jak sprawdzić, czy pole tablicy zawiera unikalną wartość lub inną tablicę w MongoDB?
Używam teraz mongodb.
Mam kolekcję blogpost, a blogpost ma złożony znacznik, który jest tablicą, np.
blogpost1.tags = ['tag1', 'tag2', 'tag3', 'tag4', 'tag5']
blogpost2.tags = ['tag2', 'tag3']
blogpost3.tags = ['tag2', 'tag3', 'tag4', 'tag5']
blogpost4.tags = ['tag1', 'tag4', 'tag5']
Jak mogę wykonać te Wyszukiwania
- zawiera 'tag1'
- zawiera ['tag1','tag2'],
- zawiera dowolne z ['tag3','tag4']
140
Author: user2398029, 2011-03-20
2 answers
Wypróbuj to:
db.blogpost.find({ 'tags' : 'tag1'}); //1
db.blogpost.find({ 'tags' : { $all : [ 'tag1', 'tag2' ] }}); //2
db.blogpost.find({ 'tags' : { $in : [ 'tag3', 'tag4' ] }}); //3
218
Author: Jeff the Bear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-29 22:40:22
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-29 22:40:22
Moje doświadczenie jest takie, że dla (2) następujące rozwiązanie jest znacznie szybsze niż to z "$all":
db.blogpost.find({ $and: [ {tags: 'tag1'} ,{tags: 'tag2'} ] });
Ale szczerze mówiąc, Nie wiem dlaczego. Byłbym zainteresowany, gdyby ktoś wiedział. 5
Author: heinob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-10 11:43:30
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-10 11:43:30