gpt4 book ai didi

c# - 无法通过对象 ID 查找 MongoDB C# 驱动程序?

转载 作者:可可西里 更新时间:2023-11-01 09:07:48 24 4
gpt4 key购买 nike

使用 MongoDB C# 驱动程序 ( http://github.com/samus/mongodb-csharp ),我似乎无法通过 ObjectId 获取数据。在我使用的命令下方:

var spec = new Document { { "_id", id } };
var doc = mc.FindOne(spec);

我也试过这个:

var spec = new Document { { "_id", "ObjectId(\"" + id + "\")" } };
var doc = mc.FindOne(spec);

两者都不返回任何内容。同时,如果我从 mongo 控制台查询它,它会返回预期的结果。

我的问题是,该驱动程序是否真的支持通过 ObjectId 进行查找?

谢谢..

最佳答案

它确实支持通过对象 ID 获取。您的 id 变量应该是一个 Oid。类型正确吗?

这是一个完整的程序

  • 连接到 Mongo
  • 插入文档
  • 使用文档 ID 取回文档
  • 打印文档的详细信息。

// Connect to Mongo
Mongo db = new Mongo();
db.Connect();

// Insert a test document
var insertDoc = new Document { { "name", "my document" } };
db["database"]["collection"].Insert(insertDoc);

// Extract the ID from the inserted document, stripping the enclosing quotes
string idString = insertDoc["_id"].ToString().Replace("\"", "");

// Get an Oid from the ID string
Oid id = new Oid(idString);

// Create a document with the ID we want to find
var queryDoc = new Document { { "_id", id } };

// Query the db for a document with the required ID
var resultDoc = db["database"]["collection"].FindOne(queryDoc);
db.Disconnect();

// Print the name of the document to prove it worked
Console.WriteLine(resultDoc["name"].ToString());

关于c# - 无法通过对象 ID 查找 MongoDB C# 驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2453513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com