node.js - 在子文档数组内的子文档上使用 `$or` 时,`$` 位置运算符未找到查询所需的匹配项
问题描述
得到错误:The positional operator did not find the match needed from the query
db里面的数组叫做children
const child = {id: 'someId', uniqueField: 'someNumber'}
Model.findOneAndUpdate(
{
id: parentDocId,
$or: [
{
children: {
$elemMatch: {
id: child.id,
uniqueField: child.uniqueField,
},
},
},
{
'children.id': child.id,
'children.uniqueField': { $ne: child.uniqueField },
},
],
},
{
$set: { 'children.$.name': 'Indicator it worked' },
},
它$or
分别适用于任何一个条件,但是当我将它们放在一起时,它会因该错误而失败,条件$or
运算符是否不适用于$
位置运算符?在网上找不到有关此主题的任何信息。
里面的目标数组parentDoc
叫做children
_ _并且没有改变,否则已经改变但新的在阵列上的任何地方都不存在。child
children
uniqueField
child
uniqueField
$or
uniqueField
uniqueField
解决方案
推荐阅读
- java - 如何在'for'函数中包装字符串的arraylist
- javascript - 基于客户端的 API - 处理多个 JSON
- python - 我在构建冰雹序列中的编码导致无休止的循环
- javascript - 如何在laravel中获取日期格式?
- html - 使用uikit连续十张图片
- oop - 带有指针的 Fortran 函数导致正常赋值
- python - 为什么 ??当我将一个文本文件复制到另一个时出现?
- json - 如何调试 JSON 文档无效的原因?
- javascript - 将 window.location.href 从扩展复制到剪贴板
- android - how to place a bitmap image(pin) in center of the canvas circle(blue circle)?