javascript - $all 不在 mongodb 中工作

标签 javascript node.js mongodb mongodb-query

我的收藏中有两个文档

{ participants: [ '5ab8fcf6d8bfca2cc0aebb37', '5ab8fd15d8bfca2cc0aebb38' ],
    _id: 5ab9a5a0cb274a2064b65d1b,
    __v: 0 
},
{ participants: [ '5ab8fcf6d8bfca2cc0aebb37', '5ab8fcf6d8bfca2cc0aebb37' ],
    _id: 5ab9a5a7cb274a2064b65d1c,
    __v: 0
}

我有很多人喜欢

persons = [ 5ab8fcf6d8bfca2cc0aebb37, '5ab8fcf6d8bfca2cc0aebb37' ]

现在,我正在尝试使用此查询查找包含类似于数组 personsparticipants 字段的文档。

Participant.find({participants: {$all: persons}}).exec()
        .then(connected => {
            console.log(connected);
            // perform some stuff
});

它把两个文档都作为输出抛给我。 我不知道是什么问题。

提前致谢。

最佳答案

我想你想要的是 $setEquals运营商。

db.collection.find({ $expr: { $setEquals: [ persons, "$participants" ] } } )

您可以将 $setEquals 运算符与 $redact 一起使用运算符如果 $expr运算符在您运行的 mongod 版本中不可用。

关于javascript - $all 不在 mongodb 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49503396/

相关文章:

javascript - 从字符串中删除文本

javascript - 特定日期列下的 ExcelJS 数据

node.js - MongoDB 计数集合 Node.js

node.js - 这是在平均堆栈上进行数据库搜索的最佳方法

javascript - 如何显示数字输入类型的自定义验证消息

javascript - 如何在 javascript 中按名称调用函数,其中整个代码包含在某个匿名函数中

javascript - 在 JavaScript/jQuery 中,是否有一种更短的方法可以在同一测试变量上编写带有多个 OR 的 'if' 语句?

javascript - 在 V8 JavaScript (Chrome & Node.js) 中访问行号

node.js - 如何在 Webstorm 中设置文件观察器来重新启动 Node.js?

mongodb - 在 Mongo 中对多对多连接进行数据建模?