当前位置: 首页 > 知识库问答 >
问题:

查找数组包含值的位置

胡嘉歆
2023-03-14

假设您有一个装有物品的盒子。每个项目可能位于多个框中,因此每个项目都有一个指向项目所在框的ID数组。

={... boxIds:['000001','000002','000003']...}

在mongoDB中,您可以说child.find({boxIds:'000002'})来获取子节点A和000002在box Ids数组中的所有其他子节点。这是我在mongoose(coffeescript)中尝试的:

  data = boxIds: box._id
  Child.find data, (err, children) -> doSomething

编辑

Child = new mongoose.Schema
  ...
  boxIds: Array
  ...

盒子_id是正常的mongodb id字符串

MongoDB中的示例查询:db.child.find({boxIds:'50bb5d10ba1e232401000002 '} )

结果:......,"boxIds":["50bb5d10ba1e232401000002"],......

编辑2

莫非_id不是弦?

共有1个答案

戚繁
2023-03-14

问题是框_id是一个ObjectId,但子项的BoxID数组字段包含字符串。

请尝试以下操作:

data = boxIds: box._id.toString()
Child.find data, (err, children) -> doSomething

另一种选择是将boxIds定义为模式中的字符串数组,然后Mongoose将为您进行必要的转换:

Child = new mongoose.Schema
  ...
  boxIds: [String]
  ...
 类似资料:
  • 问题内容: 我有以下模型: 我正在寻找一个查询,该查询检索不属于某个特定组的所有人员(即,人员的组数组不包含指定组的ID)。 我在考虑这样的事情,但是我不确定它是正确的: 问题答案: 基本的尝试没什么错,但是这里唯一的澄清可能是普遍的误解,即您需要像 或 查询数组时这样的运算符。 另外,您真的需要在这里做一个基本的不等式匹配 : “数组”运算符不用于“数组目标”,而是用于提供条件的“列表”以方便的

  • 因此,我有一个3D数组,如。3D数组的大小可以改变为不同的大小,例如:或等等。对于第一个示例,假设im on position。我想知道一种方法,可以将当前位置与当前位置后面的变量位置互换,例如:I want to swap与后面的第3个值互换。因此,在这种情况下,它将是。我怎么算呢?

  • 如何返回特定日期所在的行号? 类似这样的事情:

  • 我正在尝试解决这个算法问题: https://dunjudge.me/analysis/problems/469/ 为了方便起见,我总结了下面的问题陈述。 给定一个长度为 ( 多数元素定义为发生的元素 时限:1.5s 例如: 如果给定的数组是[1,2,1,2,3,2], 答案是5,因为从位置1到5 (0索引)的长度为5的子数组[2,1,2,3,2]具有出现为3的数字2 首先想到的是一个明显的强力(

  • 问题内容: 假设我创建了一个像这样的文档: 我可以使用GET / idx / type / 1检索文档: 现在,我想检查字段“ the_field”是否包含值2。我知道我可以使用term子句,但是我需要使用过滤器脚本检查它,因此我尝试了: 并没有结果: 为了测试我的mevl脚本语法是否正确,我尝试这样做: 并获得正确的结果: 我究竟做错了什么? 我认为doc [‘the_field’]。value

  • 问题内容: 我正在尝试检测字符串是否包含至少一个存储在数组中的URL。 这是我的数组: 该字符串由用户输入并通过PHP提交。在确认页面上,我想检查输入的URL是否在数组中。 我尝试了以下方法: 无论输入什么,返回值始终为“找不到匹配项”。 这是正确的做事方式吗? 问题答案: 尝试这个。 如果要检查不区分大小写,请使用stristr()或stripos()。