返回"零"对于不存在的字段

时间:2015-04-27 08:38:20

标签: php mongodb

在我的mongoDB集合中,有些文档中有一些不存在的字段。

我希望这些字段为"零"从集合中提取文档时。

那有method吗?

2 个答案:

答案 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)等模式。