Итак, я использую mongoose-long.
Это мой код запроса в mongoose, где у меня есть жестко закодированная допустимая строка.
const mongoose = require('mongoose');
require('mongoose-long')(mongoose);
var Long = mongoose.Types.Long;
let makertags = await Markertag.find({ 'photoId': Long.fromString('5853748089061376') });
Вот моя схема:
const mongoose = require('mongoose');
require('mongoose-long')(mongoose);
const SchemaTypes = mongoose.Schema.Types;
let schema = mongoose.Schema({
photoId: { type: mongoose.Schema.Types.Long },
eventId: { type: String }
});
Это отладка запроса mongoose
markertags.find({ photoId: Long { _bsontype: 'Long', low_: -277610496, high_: 1362931 } }, { fields: {} });
{
"_id" : ObjectId("5caf6e18241cb90c791157a5"),
"id" : "ahFzfnBpYzJnby1wcm9kLWhyZHIWCxIJTWFya2VyVGFnGICA0OvHkYYJDA",
"photoId" : NumberLong(4503749505843200),
"markerNum" : NumberInt(531)
}
{
"_id" : ObjectId("5caf6e18241cb90c791157a6"),
"id" : "ahFzfnBpYzJnby1wcm9kLWhyZHIWCxIJTWFya2VyVGFnGICA0LurouQIDA",
"photoId" : NumberLong(4503851813306368),
"markerNum" : NumberInt(405)
}
Я не уверен, как сделать это правильно, потому что я продолжаю получать пустой массив.