乐趣区

关于mongodb:mongodb常用命令3数组匹配

mongon 常用命令 3 – 数组匹配

1.mongon 数组标签 tag 匹配例子:
数据库是这样的:

我想要的是从我的 tag 标签返回搜寻到的关键词:
(1)数组中单个匹配:(单个匹配,只有数组中含有这个关键字,那么都会返回)

db.ss_tests.find({tag:'小学'} )

后果:

数据很芜杂,去一下不必要的字段:字段后加 0,示意不显示。

db.ss_tests.find({tag:'小学'},{content:0,_id:0,id:0} )

后果这样就很简洁了:

(2)多个条件匹配:

db.ss_tests.find({ tag:{$all: ['高中',"语文"]} },{content:0,id:0,_id:0} )

运行后果:

加了关键字 $all, 它会返回文档中符合条件的数组,只有蕴含高中,语文就会返回;而且会漠视数组中原本该关键字的程序,和数组是否存在其它元素。
然而你如果这样匹配你的数据库:

db.ss_tests.find({ tag: ['高中',"语文"] } )

后果将会空白,返回没有什么,它的意思是查问所有数组元素为高中,语文的,然而只能蕴含高中,语文这两个关键字,其它不行,因为我数据库的标签都是三个元素的,所以无奈打印出后果:

官网文档存在加 all 与不加 all 的阐明,上面附上原阐明:
不加 all:

翻译:上面的这个例子会查问所有文档中的 tags 数组,这些数组必须蕴含确切的两个元素“red”和“blank”,并且程序也是特定的,就是即便存在有的文档含有 red 和 blank,然而程序扭转,它也不会反馈给你。

加了 all:

翻译:相同,如果你心愿找到的数组蕴含下面的这两个元素 red 和 blank,然而疏忽其它元素是否存在,并且也疏忽它在数组中的程序,那么你能够应用 $all 这个运算符

(2)待更……

退出移动版