假设您使用的是Nodejs Mongodb 驱动程序而不是一些 ORM(因为尚未指定),请注意两点:
- 据我所知,如果您在
db
变量中有到所需数据库的连接对象,则不能直接引用集合,例如您使用db.secrets
; 您必须改为使用如下collection
方法:
const secrets = db.collection("secrets");
secrets.find({
/*your query here*/
}).then((results) => {})
因此,除非您已分配,否则您db.secrets
应该db.collection("secrets")
会收到错误,Cannot read property "update" of undefined
. 但是我假设你已经得到了集合对象,db.secrets
因为你没有提到你得到了那个错误。
- 您似乎使用的是字符串而不是
ObjectID
对象。您可以像这样从 nodejs 驱动程序导入ObjectID 构造函数:
const ObjectID = require('mongodb').ObjectID
然后在您的查询中,您必须创建一个新的 ObjectID 才能获得正确的结果:
db.collection("secrets").find({
_id: new ObjectID("5f767cd481cea1687b3dbf86")
}).then((results) => {})
注意:如果提供给它的ObjectID
字符串不是有效的 24 字符十六进制字符串,则构造函数将引发错误,因此,如果您id
从某处获取字符串作为输入(例如,作为 API 中的参数或作为命令行参数),您可能希望将其包装在处理该错误的函数中。