【发布时间】:2017-07-14 20:14:55
【问题描述】:
实际上我使用 cosmos db 作为我的后端,我尝试使用 Linq 查询样式获取集合的计数。但是我收到了这个错误
MongoDB.Driver.MongoCommandException: '命令聚合失败: '$group' 不受支持。'
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
var client = new MongoClient(url);
var database = client.GetDatabase("db");
var collection = database.GetCollection<Users>("users");
var query = collection.AsQueryable<Users>().Count();
在查询行中收到执行处理程序错误...
MongoDB.Driver.MongoCommandException: '命令聚合失败: '$group' 不受支持。'
请帮助我找出问题所在... 提前谢谢...
【问题讨论】:
-
不是完全重复,但
$group的可用性已被多次询问,包括here。 -
似乎有人在 Azure SEO 中一直很忙。过去很容易找到不支持 MongoDB 聚合函数的引用,但它们突然出现“奇怪地隐藏”。事实上,大多数搜索词都指向this "very helpful" piece of information.。就我个人而言,我不喜欢把钱交给任何有明显欺骗历史的人。
-
底线是 CosmosDB 不是 MongoDB,尽管有任何其他声明。如果您想要 MongoDB 功能,请改用它。如果你认为你想要“Cosmos DB 服务”,那么你应该使用“它自己的原生 API”,而不是它声称“兼容”的东西。在大多数情况下,这根本不是一个真实的陈述。
-
var collection = database.GetCollection<Users>("users");var result = collection.Find(_ => true).ToList();var query = result.Count();这给了我我需要的确切结果...这是获得结果的好方法还是我做错了什么...