在我的mongoDB集合中,有些文档中有一些不存在的字段。
我希望这些字段为"零"从集合中提取文档时。
那有method
吗?
答案 0 :(得分:0)
由于using (SQLiteConnection conn_write = new SQLiteConnection("Data Source=" + path + ";PRAGMA journal_mode=WAL;"))
{
conn_write.Open();
SQLiteCommand cmd_write = new SQLiteCommand(conn_write);
using (SQLiteConnection conn_read = new SQLiteConnection("Data Source=" + path + ";PRAGMA journal_mode=WAL;"))
{
conn_read.Open();
SQLiteCommand cmd_read = new SQLiteCommand(conn_read);
SQLiteDataReader reader;
sql_read = "SELECT ID, ETRF2000_FI, ETRF2000_LA FROM Tutto_NonAbolito";
cmd_read.CommandText = sql_read;
reader = cmd_read.ExecuteReader();
while (reader.Read())
{
MobileKat.ALCoord.ETRF200ToLL84(reader.GetDouble(reader.GetOrdinal("ETRF2000_FI")), reader.GetDouble(reader.GetOrdinal("ETRF2000_LA")), ref lon, ref lat);
sql_write = "UPDATE Tutto_NonAbolito SET LL84_LON = " + lon + ", LL84_LAT = " + lat + " WHERE " + reader.GetInt32(reader.GetOrdinal("ID")) + " = ID;";
cmd_write.CommandText = sql_write;
cmd_write.ExecuteReader();
}
conn_read.Close();
}
conn_write.Close();
}
为MongoDB
,因此您不具备document based DB
等常规表格结构。一个SQL
文档(mongo文档)通常可以包含不同的内容。
你可以创建数组,用于基础比较。
答案 1 :(得分:0)
在MongoDB中,默认情况下,不存在的字段将返回null
且仅返回null
。
一种解决方法是使用聚合:
db.c.aggregate([
{$project: {field: {$ifNull: ['$field', 0]} }}
])
但我不推荐这种方法。
相反,我建议推进您的应用程序以使用Active Record(http://en.wikipedia.org/wiki/Active_record_pattern)等模式。