我构建了一个这样的查询:
var trigger = 0;
var intervalID = window.setInterval(triggerWatch, 500);
function triggerWatch() {
if(trigger > 20){
// Do Stuff Here
}
}
我想返回所有文件,其中字段'words'的数组包含字符串['hello','you']。
执行此查询时出现此错误:
“errmsg”:“未知的顶级操作符:$ setIsSubset”
我做错了什么?
感谢您的帮助!
答案 0 :(得分:3)
如果要在$setIsSubset
内使用$match
(表达式),则应使用$expr:
db.test.aggregate([
{
$match: {
$expr: {
$setIsSubset: [["hello", "you"], "$words"]}
}
}
])
对于低于 3.6 的MongoDB版本,您可以使用$redact:
db.test.aggregate([
{
$redact: {
$cond: {
if: { $eq: [ { $setIsSubset: [["hello", "you"], "$words"]}, true ] },
then: "$$KEEP",
else: "$$PRUNE"
}
}
}
])
答案 1 :(得分:1)
这有效:
db.test.aggregate([{$match: {'words': {'$all': ["hello", "you"] }}}])