MongoDB查询变量搜索词的数量

时间:2019-07-07 04:01:10

标签: mongodb

我正在尝试基于包含元数据数组的文档设计查询。

book = {     标题:字符串,     metaData:[字符串] }

要查找所需的书,我还有另一个包含多个元数据术语的搜索字符串数组。数组的长度可以根据存在的元数据搜索词的数量而变化。如何查询仅查找包含所有指定的元数据搜索词的图书?

示例:

book1-自然,树木,昆虫,雾气,音乐 book2-音乐,艺术,体育

使用[音乐,运动]的元数据进行搜索将产生book2。

如何最有效地设计此查询?我可以这样做并避免嵌套查询吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以使用$all运算符来执行此操作。

从文档中:

  

相反,如果您希望找到一个同时包含元素“ red”和“ blank”的数组,而不考虑该数组中的顺序或其他元素,请使用$ all运算符:

     

db.inventory.find( { tags: { $all: ["red", "blank"] } } )

MongoDB CRUD Operations: Query an array

答案 1 :(得分:0)

您可以使用... <profiles> <profile> <id>default</id> <activation><activeByDefault></activeByDefault></activation> </profile> <profile> <id>eclipse</id> <properties> <my.library.version>[1,)</my.library.version> </properties> </profile> </profiles> ... 来获取包含给定元数据字符串的所有文档。

尝试:

$all

详细了解有关$all official documentation的信息。