var filter = Builders<Dating>.Filter.Eq(a => a.Id, ObjectId.Parse(id));
var cursor = cols.Find(filter);
return cursor.FirstOrDefault();
这样会很慢?
5 个解决方案
#1
你代码没写错,问题是现在快慢不在代码层级了,而是在数据库层次了,你应该尝试去优化mongodb,比如增加索引。
参考: http://docs.mongoing.com/manual-zh/core/indexes-introduction.html
参考: http://docs.mongoing.com/manual-zh/core/indexes-introduction.html
#2
晕!
人家字段是使用字符串的,而且对于 Id 对应的字段名是 “_id”。你写的什么?
人家字段是使用字符串的,而且对于 Id 对应的字段名是 “_id”。你写的什么?
#3
你可以仔细看看基本的文档中的例子:
https://docs.mongodb.org/getting-started/csharp/query/
虽然我不用这个驱动,不用这种编程方式,但是我看这个文档,一下子就看到人家的字段都写字符串类型的名字。而你写的什么啊?明显你是太不用心了哦。
虽然我不用这个驱动,不用这种编程方式,但是我看这个文档,一下子就看到人家的字段都写字符串类型的名字。而你写的什么啊?明显你是太不用心了哦。
#4
类里面有转换Id对应自增的,貌似有个属性可以做,类定义没贴出来...
#5
上亿的数据,我觉得需要拆分数据库,sql怎么优化,增加索引,效果都不是很大
根据某些类别,将大库分解成几个小库,然后单独建立表,映射类别和各个分解后的表之间的关系
先分解,然后操作时再优化和索引
还有,建议直接写sql语句,不写lambda,它最终还是转为sql语句提交给数据库服务器执行的,直接写sql就能省去这个转化
根据某些类别,将大库分解成几个小库,然后单独建立表,映射类别和各个分解后的表之间的关系
先分解,然后操作时再优化和索引
还有,建议直接写sql语句,不写lambda,它最终还是转为sql语句提交给数据库服务器执行的,直接写sql就能省去这个转化
#1
你代码没写错,问题是现在快慢不在代码层级了,而是在数据库层次了,你应该尝试去优化mongodb,比如增加索引。
参考: http://docs.mongoing.com/manual-zh/core/indexes-introduction.html
参考: http://docs.mongoing.com/manual-zh/core/indexes-introduction.html
#2
晕!
人家字段是使用字符串的,而且对于 Id 对应的字段名是 “_id”。你写的什么?
人家字段是使用字符串的,而且对于 Id 对应的字段名是 “_id”。你写的什么?
#3
你可以仔细看看基本的文档中的例子:
https://docs.mongodb.org/getting-started/csharp/query/
虽然我不用这个驱动,不用这种编程方式,但是我看这个文档,一下子就看到人家的字段都写字符串类型的名字。而你写的什么啊?明显你是太不用心了哦。
虽然我不用这个驱动,不用这种编程方式,但是我看这个文档,一下子就看到人家的字段都写字符串类型的名字。而你写的什么啊?明显你是太不用心了哦。
#4
类里面有转换Id对应自增的,貌似有个属性可以做,类定义没贴出来...
#5
上亿的数据,我觉得需要拆分数据库,sql怎么优化,增加索引,效果都不是很大
根据某些类别,将大库分解成几个小库,然后单独建立表,映射类别和各个分解后的表之间的关系
先分解,然后操作时再优化和索引
还有,建议直接写sql语句,不写lambda,它最终还是转为sql语句提交给数据库服务器执行的,直接写sql就能省去这个转化
根据某些类别,将大库分解成几个小库,然后单独建立表,映射类别和各个分解后的表之间的关系
先分解,然后操作时再优化和索引
还有,建议直接写sql语句,不写lambda,它最终还是转为sql语句提交给数据库服务器执行的,直接写sql就能省去这个转化