当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《MongoDBC#驱动程序无法通过对象ID查找?》经验,为你挑选了1个好方法。

使用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的查找?

谢谢..



1> Ant..:

它支持按对象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());

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有