Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用c#MongoCursor获得不同的值?_C#_Mongodb_Distinct - Fatal编程技术网

如何使用c#MongoCursor获得不同的值?

如何使用c#MongoCursor获得不同的值?,c#,mongodb,distinct,C#,Mongodb,Distinct,我使用c#mongodb驱动程序进行查询。如果使用db.GetCollection.Distinct()函数,则调用MongoCursorcollection.FindAs(查询),我将得到一个错误:“System.Collections.Generic.IEnumerable”不包含“FindAs”的定义,并且找不到接受“System.Collections.Generic.IEnumerable”类型的第一个参数的扩展方法“FindAs”。 有人知道在使用mongodb游标和IMongoQu

我使用c#mongodb驱动程序进行查询。如果使用
db.GetCollection.Distinct()
函数,则调用MongoCursor
collection.FindAs(查询)
,我将得到一个错误:
“System.Collections.Generic.IEnumerable”不包含“FindAs”的定义,并且找不到接受“System.Collections.Generic.IEnumerable”类型的第一个参数的扩展方法“FindAs”。


有人知道在使用mongodb游标和IMongoQuery时如何调用distinct函数吗?提前感谢您。

我已经使用runCommand方法实现了预期的结果。 我有一个叫做“capped”的收藏。其中包含名为“x”的字段的记录。我在集合中插入了不同的值,其中有27的多个值。 下面的Javascript语句表示“我希望集合中的distinc键为“x”列时有不同的值,我正在查询x为27的值”

在Javascript中,它如下所示:

runCommand({“distinct”:“capped”,“query”:{“x”:27},“key”:“x” });

在C#中,它看起来有些类似:


非常感谢。您使用Javascript Mongdob驱动程序吗?我认为c#与此不同。我所做的是重写对象中的.eqauls函数,然后使用mongo cursor一个接一个地处理它们,速度有点慢。我在答案中提供的C#代码片段就是我在C#程序中使用的实际代码——它编译并运行。我已经测试过了。谢谢,它能用。但问题是,我将mongoDB游标称为IMongoQuery(几个查询的组合)。CommandDocument不支持此功能,每个文档中有数百个字段。如何处理?
      CommandDocument distinctCmd = new CommandDocument{
          {"distinct", "capped"},
          {"query", new BsonDocument("x", 27)},
          {"key", "x"}            };
      CommandResult r = database.RunCommand(distinctCmd);