如何处理填充字段的空字符串

问题描述 投票:0回答:1

我可以执行哪些操作来处理填充字段的空字符串? 由于一些错误,填充字段存储为空字符串,我不知道有多少填充字段存储为空字符串

因为我有一个很大的数据库,其中每个模型都有超过 2,00000 条记录,使用 Node.js 进行 mongoDB

当我尝试查询该文档时,我收到此错误,并且由于业务逻辑,我还需要显示该文档,因此我无法将该键作为这样的条件传递

const result = await Model.find({rpc_id: {$ne: ''}})
Something went wrong in paginateData method with error: CastError: Cast to ObjectId failed for value "" (type string) at path "_id" for model "rpc_credentials" error
[Caller: postMerchantTransactionList] : [24/4/2024, 9:40:22 am 93] : error :  CastError: Cast to ObjectId failed for value "" (type string) at path "_id" for model "rpc_credentials"
    at SchemaObjectId.cast (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schema/objectId.js:250:11)
    at SchemaType.applySetters (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schemaType.js:1221:12)
    at SchemaType.castForQuery (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schemaType.js:1636:17)
    at /var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schemaType.js:1597:18
    at Array.map (<anonymous>)
    at SchemaObjectId.handle$in (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schemaType.js:1593:14)
    at SchemaType.castForQuery (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schemaType.js:1632:20)
    at cast (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/cast.js:352:39)
    at Query.cast (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/query.js:4778:12)
    at Query._castConditions (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/query.js:2199:10) {
  stringValue: '""',
  messageFormat: undefined,
  kind: 'ObjectId',
  value: '',
  path: '_id',
  reason: BSONError: input must be a 24 character hex string, 12 byte Uint8Array, or an integer
      at new ObjectId (/var/www/html/coinremmiter-admin/node_modules/bson/lib/bson.cjs:2288:23)
      at castObjectId (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/cast/objectid.js:25:12)
      at SchemaObjectId.cast (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schema/objectId.js:248:12)
      at SchemaType.applySetters (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schemaType.js:1221:12)
      at SchemaType.castForQuery (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schemaType.js:1636:17)
      at /var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schemaType.js:1597:18
      at Array.map (<anonymous>)
      at SchemaObjectId.handle$in (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schemaType.js:1593:14)
      at SchemaType.castForQuery (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/schemaType.js:1632:20)
      at cast (/var/www/html/coinremmiter-admin/node_modules/mongoose/lib/cast.js:352:39),
  valueType: 'string',
  model: Model { rpc_credentials }
}

那我现在该怎么办

我想为所有存储空字符串的填充字段存储空值

node.js mongodb mongoose
1个回答
0
投票

尝试一下!

const result = wait Model.find({ rpc_id: { $ne: null } });

© www.soinside.com 2019 - 2024. All rights reserved.