I have two objects
first:
const Order = {
orderNumber: String,
deliveryInfo: [
{
type: Schema.Types.ObjectId,
ref: 'Transit',
},
],
}
second:
const Transit = {
order: {
type: Schema.Types.ObjectId,
ref: 'Order',
}
}
Is it possible in mongoose to query for a specific order number via the Transit
model?
something like this
const query = {}
query['order.orderNumber'] = '9999'
TransitModal.find(query)
for some reason, I do not get any results.
If the query is changed to the following shape
query.order = {
orderNumber: 1,
};
There's following error
message: CastError: Cast to ObjectId failed for value "{ orderNumber: '9999' }" at path "order" for model "Transit"
at model.Query.exec (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose/lib/query.js:4358:21)
at Function.paginate (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose-paginate-v2/dist/index.js:127:49)
at Transit._callee$ (/Users/eugene/Documents/development/conjure-admin/server/dataService/models/transit.js:80:36)
at tryCatch (/Users/eugene/Documents/development/conjure-admin/server/node_modules/regenerator-runtime/runtime.js:63:40)
at Generator.invoke [as _invoke] (/Users/eugene/Documents/development/conjure-admin/server/node_modules/regenerator-runtime/runtime.js:293:22)
at Generator.next (/Users/eugene/Documents/development/conjure-admin/server/node_modules/regenerator-runtime/runtime.js:118:21)
at asyncGeneratorStep (/Users/eugene/Documents/development/conjure-admin/server/dataService/models/transit.js:24:103)
at _next (/Users/eugene/Documents/development/conjure-admin/server/dataService/models/transit.js:26:194)
at /Users/eugene/Documents/development/conjure-admin/server/dataService/models/transit.js:26:364
at new Promise (<anonymous>)
at Transit.<anonymous> (/Users/eugene/Documents/development/conjure-admin/server/dataService/models/transit.js:26:97)
at Transit.findPaginated (/Users/eugene/Documents/development/conjure-admin/server/dataService/models/transit.js:163:31)
at _callee$ (/Users/eugene/Documents/development/conjure-admin/server/controller/transit.controller.js:41:41)
at tryCatch (/Users/eugene/Documents/development/conjure-admin/server/node_modules/regenerator-runtime/runtime.js:63:40)
at Generator.invoke [as _invoke] (/Users/eugene/Documents/development/conjure-admin/server/node_modules/regenerator-runtime/runtime.js:293:22)
at Generator.next (/Users/eugene/Documents/development/conjure-admin/server/node_modules/regenerator-runtime/runtime.js:118:21)
at asyncGeneratorStep (/Users/eugene/Documents/development/conjure-admin/server/controller/transit.controller.js:32:103)
at _next (/Users/eugene/Documents/development/conjure-admin/server/controller/transit.controller.js:34:194)
at /Users/eugene/Documents/development/conjure-admin/server/controller/transit.controller.js:34:364
at new Promise (<anonymous>)
at /Users/eugene/Documents/development/conjure-admin/server/controller/transit.controller.js:34:97
at /Users/eugene/Documents/development/conjure-admin/server/controller/transit.controller.js:10:1
at Layer.handle [as handle_request] (/Users/eugene/Documents/development/conjure-admin/server/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/eugene/Documents/development/conjure-admin/server/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/eugene/Documents/development/conjure-admin/server/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/eugene/Documents/development/conjure-admin/server/node_modules/express/lib/router/layer.js:95:5)
at /Users/eugene/Documents/development/conjure-admin/server/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Users/eugene/Documents/development/conjure-admin/server/node_modules/express/lib/router/index.js:335:12) {
messageFormat: undefined,
stringValue: `"{ orderNumber: '9999' }"`,
kind: 'ObjectId',
value: { orderNumber: '9999' },
path: 'order',
reason: Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
at new ObjectID (/Users/eugene/Documents/development/conjure-admin/server/node_modules/bson/lib/bson/objectid.js:59:11)
at castObjectId (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose/lib/cast/objectid.js:25:12)
at ObjectId.cast (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose/lib/schema/objectid.js:267:12)
at ObjectId.SchemaType.applySetters (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose/lib/schematype.js:1075:12)
at ObjectId.SchemaType._castForQuery (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose/lib/schematype.js:1510:15)
at ObjectId.SchemaType.castForQuery (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose/lib/schematype.js:1500:15)
at ObjectId.SchemaType.castForQueryWrapper (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose/lib/schematype.js:1477:20)
at cast (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose/lib/cast.js:274:34)
at model.Query.Query.cast (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose/lib/query.js:4759:12)
at model.Query.<anonymous> (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose/lib/query.js:2238:10)
at model.Query._wrappedThunk [as _countDocuments] (/Users/eugene/Documents/development/conjure-admin/server/node_modules/mongoose/lib/helpers/query/wrapThunk.js:16:8)
at /Users/eugene/Documents/development/conjure-admin/server/node_modules/kareem/index.js:369:33
at processTicksAndRejections (internal/process/task_queues.js:79:11)
},
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…