有鉴于此,三个MongoDB对象
{
"_id" : 1,
"array" : [ "a", "b", "c" ]
}
{
"_id" : 2,
"array" : [ "a", "b", "c" ]
}
{
"_id" : 3,
"array" : [ "x", "a", "b", "c" ]
}
{
"_id" : 4,
"array" : [ "x", "b", "c", "a" ]
}
我想用两种不同的方式搜索。
首先,我想找到数组以[“a”,“b”]开头的所有对象,它们应该是对象1,2,而不是3和4。
我想搜索数组中包含[“a”,“b”]的所有对象,顺序应该是1,2,3而不是4。
有什么想法,我如何搜索一个数组的子集,在该顺序,和/或开始在数组的开头?
1条答案
按热度按时间eqzww0vc1#
要检查有序子集,您可以尝试以下操作:
在这个查询中,我们首先过滤数组,使其只包含子集中的元素,然后比较数组,看看它们是否有序。
Playground link.
要在开始时检查有序数组,请对数组进行切片,然后进行比较,如下所示:
Playground link