Estoy agregando MongoDB a mi bot de discordia, lo tengo configurado para que cuando algo suceda, lo haga.
await ticketSchema.findOneAndUpdate( { $inc: { ticketNumber: 1 } } )Todo funciona bien, es cuando trato de encontrarlo más tarde que no funciona. Estoy tratando de encontrar el número de boleto sin importar cuál sea el número, así que si es 16 mostrará 16, si es 50 mostrará 50 y así sucesivamente. Sería genial si pudiera almacenar lo que sea el ticketNumber cuando lo encuentre en una variable.
Esto es lo que tengo que probar actualmente y no estoy seguro de qué hacer lol soy nuevo en mongo y js
let result = ticketSchema.find({ ticketNumber: [42] })Esto podría ayudar:
let result = await ticketSchema.find({ ticketNumber: { $in: [ 42 ] } })lo anterior es para encontrar todos los documentos donde ticketNumber incluye el número 42, asumiendo que ticketNumber es un campo de matriz, lo que podría ser la razón por la cual su código está fallando (así es como usa la búsqueda cuando intenta encontrar un campo de matriz).
en su lugar, intente esto (noté que se perdió la espera, espero que esto ayude :)):
let result = await ticketSchema.find({ ticketNumber: 42 })Hay varias formas de obtener el último valor del incremento:
-Obtener el número total de documentos: ( realmente no recomendado )
Al obtener el número total de documentos (con el filtrado apropiado abierto/cerrado ), tendría el valor del último incremento ya que está incrementando cada vez que agrega un documento.
db.collection.count()-Obtener el último documento insertado: ( recomendado )
El último documento insertado contendrá el valor de su incremento necesario.
Hay un par de maneras de implementar esto:
db.collection.find().skip(db.collection.count())o
db.collection.find().sort({ticketNumber:-1}).limit(1) Nota: para seleccionar un campo específico, puede especificarlos en la función de búsqueda.
ejemplo:
db.collection.find({}, { ticketNumber: 1, _id: 0}).sort({ticketNumber:-1}).limit(1)No estoy seguro de poder entenderte bien, pero ¿qué quieres decir con
await ticketSchema.findOneAndUpdate( { $inc: { ticketNumber: 1 }, } );este código intenta incrementar el campo ticketNumber en uno, pero no le ha dado ningún filtro.
findOneAndUpdate(filters, update, options )para obtener un documento, utilice find():
let value= your Value here; let result = ticketSchema.find({ticketNumber: value})