我有以下模型:
var PersonSchema = new Schema({
name: String,
groups: [
{type: Schema.Types.ObjectId, ref: 'Group'}
],
});
我正在寻找一个查询,该查询检索不属于某个特定组的所有人员(即,人员的组数组不包含指定组的ID)。
我在考虑这样的事情,但是我不确定它是正确的:
Person.find({groups: {$nin: [group._id]})
基本的尝试没什么错,但是这里唯一的澄清可能是普遍的误解,即您需要像
$nin
或
$in
查询数组时这样的运算符。
另外,您真的需要在这里做一个基本的不等式匹配
$ne
:
Person.find({ "groups": { "$ne": group._id } })
“数组”运算符不用于“数组目标”,而是用于提供条件的“列表”以方便的形式进行测试。
Person.find({ "groups": { "$nin": [oneId, twoId,threeId] } })
因此,只需对单个条件使用普通运算符,然后将其保存$in
并$nin
用于要针对单个值或列表测试多个条件的位置。因此,反之亦然。
如果确实需要传递参数的“列表”,其中所提供列表中的参数“没有”与数组的内容匹配,则可以使用
$not
运算符和
$all
运算符反转逻辑:
Person.find({ "groups": { "$not": { "$all": [oneId,twoId,threeId] } } })
因此,这意味着提供的“列表中的任何一个”都不存在于数组中。
如何返回特定日期所在的行号? 类似这样的事情:
我正在尝试查找不包含至少一个具有特定字段值的文档的所有文档。例如,下面是一个示例集合: 我希望找到docs块中没有包含至少一个foo=1的记录的文档的每个记录。在上面的示例中,应该只返回第二个文档。 我还查看了$nin运算符,但示例只显示数组包含基元值列表时的情况,而不是附加文档。当我尝试使用类似于下面的东西来实现这一点时,它查找的是确切的文档,而不仅仅是我想要的foo字段。 有没有用基本运算符来
假设您有一个装有物品的盒子。每个项目可能位于多个框中,因此每个项目都有一个指向项目所在框的ID数组。 ={... boxIds:['000001','000002','000003']...} 在mongoDB中,您可以说来获取子节点A和000002在box Ids数组中的所有其他子节点。这是我在mongoose(coffeescript)中尝试的: 编辑 盒子_id是正常的mongodb id字
问题内容: 我不知道如何在下面编写查询。 我的桌子是 我需要在col2中同时存在两个参数的地方选择不同的col1 id。例如。如果我发送6,7应该发送给我5 问题答案: 尝试:
我有这个ArrayList- ,一个整数被添加到移动[1]。然后将该数组添加到ArrayList中,然后重复该过程,这样我就有了一个“移动”列表。 我的问题是,我不确定如何在ArrayList(“树”)中找到仅在元素中包含特定值的数组(“移动”)——因为元素每次都是唯一的。 然后,我想制作一个所有匹配项的数组/列表。例如,一个数组,它包含与3的值相匹配的所有移动值。因此,我会留下一个数组/2D数组
问题内容: 我有一个Array类型的PHP变量,我想找出它是否包含特定值,并让用户知道它在那里。这是我的数组: 我想做些类似的事情: 最好的方法是什么? 问题答案: 使用功能。