【发布时间】:2018-05-06 22:22:02
【问题描述】:
我有一个名为“test”的集合,其中有一个类似的文档:
{
"_id" : 1
"letters" : [
[ "A", "B" ],
[ "C", "D" ],
[ "A", "E", "B", "F" ]
]
}
如果我这样搜索:
db.getCollection('test').find({"_id" : 1}, {"letters": ["A", "B"] })
然后它将获取记录。
{
"_id" : 1
"letters" : [
[ "A", "B" ],
[ "C", "D" ],
[ "A", "E", "B", "F" ]
]
}
如果我这样搜索:
db.getCollection('test').find({"_id" : 1}, {"letters": ["B", "A"] })
它不获取记录
我的要求是,如果我也这样给出([“B”,“A”]),它必须获取文档。因为数组中已经存在相同的字母了。
我会尝试使用 $all 运算符,但它不起作用
db.getCollection('test').find({"_id" : 1}, {"letters": {$all: ["B", "A"]} })
现在它也不会获取记录
谁能给出解决方案。
【问题讨论】:
-
如果你使用更新,第二个参数不是你的条件
-
OP:这里有两件不同的事情:更新和查询。也许您可以将它们分开并描述您想要的输出?