如何根据两个过滤条件更新文档?

时间:2019-03-14 15:57:45

标签: javascript mongodb selector querying

我有一个如下所示的文档结构:

type Document = {
  _id: string
  title: string
  variants: VariantType[]
}

type VariantType = {
  timestamp: Int
  active: Boolean
  content: any[]
}

我正在尝试根据一个查询中的两个过滤条件来过滤文档。首先,我想匹配_id,然后根据时间戳查找特定变体。

我以前的查询版本是根据active键进行过滤的。

const updatedDocument = await allDocuments
        .findOneAndUpdate({ _id: mongoId, 'variants.active': false }, .... };

将其更改为

const updatedDocument = await allDocuments
        .findOneAndUpdate({ _id: mongoId, 'variants.timestamp': timestamp }, .... };

返回null。

mongo甚至可以匹配这样的文档。我看到有一个$eq查询选择器,但我似乎也无法使它工作。

1 个答案:

答案 0 :(得分:0)

结果是我发送给服务器的时间戳有问题。我从错误的地方得到它,但它与任何变体都不匹配。