繁体   English   中英

获取集合中的最后N个项目

[英]Get last N items on collection

我正在尝试mongo db。 我需要从集合中获取最后5或10个元素。

我需要在mongodb中使用该查询:

SELECT * FROM records ORDER BY id DESC LIMIT 10

如果可能的话

SELECT * FROM records WHERE value = 'myValue' ORDER BY id DESC LIMIT 10

我如何在c#和mongodb中做到这一点?

Mongo Shell:

/* 1 */ db.MyCollection.find({}).sort({ _id: -1 }).limit(10)
/* 2 */ db.MyCollection.find({ value: 'myValue' }).sort({ _id: -1 }).limit(10)

C#Mongo驱动程序:

MongoClient mongoClient = new MongoClient(mongoConnString);
IMongoDatabase mdb = mongoClient.GetDatabase(dbName);
IMongoCollection<MyCollection> coll = mdb.GetCollection<MyCollection>(myCollection);

var sort = Builders<MyCollection>.Sort.Descending("_id");
var filter1 = Builders<MyCollection>.Filter.Empty;
var filter2 = Builders<MyCollection>.Filter.Eq("value", "myValue");

/* 1 */ var results = coll.Find(filter1).Sort(sort).Limit(10);
/* 2 */ var results = coll.Find(filter2).Sort(sort).Limit(10);

请注意,我假设您的SQL查询中的id引用一个Identity列。 相当于Mongo的是_id

假设您的记录中有一个索引dt字段:

db.collection.find({value: 'myValue'}).sort({dt: -1})

没有dt字段,您还可以执行以下操作:

db.collection.find({value: 'myValue'}).sort({_id: -1})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM