1
試圖從集合中獲取文檔,並且文檔包含嵌套文檔。試圖獲取包含嵌套文檔的文檔
獲得一個錯誤信息「預期表示Project.Models.MapTags值的序列化形式的嵌套文件,但發現字符串的值而不是」
這裏是代碼
這是獲取集合並執行查詢的方法。
public List<Maps> GetAllMapsByUserId(ObjectId userId)
{
using (_server.RequestStart(_db))
{
var query = Query.EQ("UserId", userId);
MongoCursor<Maps> maps = _db.GetCollection<Maps>"Maps").FindAs<Maps>(query);
var list = maps.ToList();
return list;
}
}
這是一個包含對象
namespace Project.Models
{
public class Maps {
[BsonId]
public ObjectId Id { get; set; }
public ObjectId UserId { get; set; }
public string MapName { get; set; }
public string Description { get; set; }
public BsonBoolean PublicMap { get; set; }
public DateTime Created { get; set; }
[BsonIgnoreIfNull]
public List<MapTags> Tags { get; set; }
[BsonIgnoreIfNull]
public List<MapVotes> Votes { get; set; }
}
public class MapVotes
{
public ObjectId VoterId { get; set; }
public int VoteValue { get; set; }
}
public class MapTags
{
public string Tag { get; set; }
}
}
希望有人有很長一段時間的想法/提示或類似的,一直在尋找和測試,並沒有發現一個解決方案的類。
更新:
下面是數據在數據庫
{
"_id" : ObjectId("4eda2415851e702684bf6392"),
"MapName" : "Test",
"Description" : "Test",
"Created" : ISODate("2011-12-03T13:28:53.698Z"),
"PublicMap" : false,
"UserId" : ObjectId("4e8033a0851e701c7c1e12e1"),
"Tags" : [ "Test", "Kalle", "Jonas", "Fredrik" ]
}
新增了數據在數據庫中的外觀示例,刪除了所有舊數據並重新創建了新數據。 – Forser
證實了這一假設。相應地更新答案 – mnemosyn