【问题标题】:How to read from MongoDB如何从 MongoDB 中读取数据
【发布时间】:2014-03-14 21:03:40
【问题描述】:

我正在尝试使用以下代码从我的 MongoDB 中读取一行

public static void MongoConnection()
{
    var connectionString = "127.0.0.1";

    var mongoClient = new MongoClient(connectionString);

    var mongoServer = mongoClient.GetServer();

    var databaseName = "PointToPoint";
    var db = mongoServer.GetDatabase(databaseName);
    var mongodb = db.GetCollection("OCS.MeterEntity");

    BsonDocument documentRead = mongodb.FindOne(new QueryDocument {
    {"_id", "4B414D000000011613CD" }
});

但 documentRead 始终为空,我知道数据库中存在特定的 _id。我做错了什么?

它确实连接到数据库和正确的表。

【问题讨论】:

  • 本地主机?我上次检查时是 127.0.0.1。
  • 你说得对,我打错了,我只是在那里写了一个随机的 nr,因为我不想让你知道我在哪里尝试连接 :)
  • _id 存储在文档中的数据类型是什么?如果真的是ObjectId,你需要传递一个:ObjectId.Parse("id here")
  • 存储为字符串

标签: c# mongodb bson


【解决方案1】:

似乎是一个调用约定:

new QueryDocument( "_id", new ObjectId("4B414D000000011613CD") )

但这应该也可以:

new BSONDocument { { "_id", "4B414D000000011613CD" } }

【讨论】:

    【解决方案2】:

    我设法弄明白了:)

    public static void MongoConnection()
            {
                var connectionString = "mongodb://localhost";
                var mongoClient = new MongoClient(connectionString);
                var mongoServer = mongoClient.GetServer();
                var databaseName = "PointToPoint";
                var db = mongoServer.GetDatabase(databaseName);
                var mongodb = db.GetCollection<MongoDBModel>("OCS.MeterEntity");
                var mongodbQuery = Query<MongoDBModel>.EQ(x => x._id, "4B414D000000011613CD");
                var foundMongoDB = mongodb.FindOne(mongodbQuery);
            }
    

    【讨论】:

      猜你喜欢
      • 2016-03-10
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多