1

例外:

System.FormatException: Invalid JSON number '2L'.
   at MongoDB.Bson.IO.JsonScanner.GetNumberToken(JsonBuffer buffer, Int32 firstChar)
   at MongoDB.Bson.IO.JsonScanner.GetNextToken(JsonBuffer buffer)
   at MongoDB.Bson.IO.JsonReader.PopToken()
   at MongoDB.Bson.IO.JsonReader.ReadBsonType()
   at MongoDB.Bson.Serialization.Serializers.BsonDocumentSerializer.DeserializeValue(BsonDeserializationContext context, BsonDeserializationArgs args)

コンストラクターによって作成された複合キーであるシャード キーの定義。

public string ShardKey { get; set; }

クエリ コード:

    public virtual async Task<ICollection<City>>(City city)
    {
        string shardKey = city.CityNumber + city.ShortName;
        return await MongoDb.CitiesCollection.Aggregate().Match({
        "{ 'Time': { $elemMatch: { $eq: 0 } }," + " ShardKey: " + shardKey + " }")
            .ToListAsync();
    }

なぜこれが失敗するのですか?

4

1 に答える 1

0

数値を含む値を次のようにラップします。

" ShardKey: '" + shardKey + "' }"

一重引用符で。

私はこれがどこにも文書化されているのを見つけることができませんでした。しかし、それは私の統合テストを実行します:)

于 2018-07-25T10:40:54.557 に答える