如何使用MongoDB检查未更改或未记录的字段?

时间:2019-07-19 06:22:45

标签: node.js mongodb mongoose mongodb-query

我试图在mongodb中更新数据,并且没有使用mondification来发送数据,而是使用put方法。它成功地抛出了成功更新消息。但是我怀疑它如何抛出了成功消息。

用户集合

{
        "user_full_name": "lenovo",
        "user_email": "user@techardors.com",
        "user_phone": "9999999999"
}

所以我尝试使用put方法更新数据而未做修改

**输入方法**

{
        "user_full_name": "lenovo",
        "user_email": "user@techardors.com",
        "user_phone": "9999999999"
}

预期产量

{
    "n": 0,
    "nModified": 1,
    "ok": 1
}

我得到了输出

{
    "n": 1,
    "nModified": 1,
    "ok": 1
}

1 个答案:

答案 0 :(得分:2)

让我们了解第一个结果:

  1. n是匹配的文档数。
  2. nModified是已修改文档的数量。
  3. ok是成功的查询。
  

根据您的预期结果,n将为0,这意味着没有文档匹配,然后nModified也将始终为0。

您可以做的是查找文档并比较对象,如果对象不匹配,则可以继续进行更新,否则只需返回文档即可。

如果您提供了PUT方法的示例代码,我想与您共享代码。

希望获得帮助!