Mongoose возвращает пустой массив при выборе свойства, тип которого NumberLong? - PullRequest
0 голосов
/ 12 апреля 2019

Итак, я использую 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)
}

Я не уверен, как сделать это правильно, потому что я продолжаю получать пустой массив.

1 Ответ

0 голосов
/ 14 апреля 2019

Итак, это то, что я закончил, просто используйте необработанный запрос: D

const collection = await mongoose.connection.db.collection ('markertags');const makertags = await collection.find ({'photoId': Long.fromString (search.searchText)}). toArray ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...