MongoDB 找号码

MongoDB find number

我正在将 MongoDB 添加到我的 discord 机器人中,我已将其设置为当发生某些事情时它会执行

                await ticketSchema.findOneAndUpdate(
                    {
                        $inc: {
                            ticketNumber: 1
                        }
                    }
                )

一切正常,当我稍后尝试找到它时,它不起作用。无论数字是多少,我都试图找到票号,所以如果它是 16,它将显示 16,如果它是 50,它将显示 50,依此类推。如果我可以将找到的任何票号存储到变量中,那就太好了。

这是我目前必须尝试并发现它不确定该怎么做的东西 lol 我是 mongo 和 js

的新手
    let result = ticketSchema.find({
        ticketNumber: [42]
    })

获取增量的最后一个值有多种方式:

-获取文件总数:不太推荐

通过获取文档总数(经过适当的过滤 opened/closed),您将获得最后一次增量的值,因为每次添加文件.

db.collection.count()

-获取最新插入的文档:推荐

最后插入的文档将包含您需要的增量值。

有几种方法可以实现:

db.collection.find().skip(db.collection.count())

db.collection.find().sort({ticketNumber:-1}).limit(1)

注:为了select特定的字段你可以在查找函数中指定它们。

示例:

db.collection.find({}, { ticketNumber: 1, _id: 0}).sort({ticketNumber:-1}).limit(1)

这可能有帮助:

let result = await ticketSchema.find({ ticketNumber: { $in: [ 42 ] } })

以上是查找 ticketNumber 包含数字 42 的所有文档,假设 ticketNumber 是一个数组字段,这可能是您的代码失败的原因(这就是您在尝试查找数组字段时使用 find 的方式) .

试试这个(我注意到你错过了等待,希望这有帮助:)):

let result = await ticketSchema.find({
  ticketNumber: 42
})

不知道能不能听懂你的意思,请问是什么意思

await ticketSchema.findOneAndUpdate(
      {
        $inc: { ticketNumber: 1 },
      }
    );

此代码试图将 ticketNumber 字段递增 1,但您没有给它任何过滤器。

findOneAndUpdate(filters, update, options )

为了获取文档然后使用 find():

let value= your Value here;
let result = ticketSchema.find({ticketNumber: value})