![](/img/trans.png)
[英]Check if particular field exists in mongoDb Collection,excluding one record
[英]Given a particular record, retrieving the previous one in a MongoDB collection
我剛開始使用MongoDB。
我需要檢索MongoDB集合中給定記錄的先前記錄。
將不勝感激任何幫助。 謝謝。
在所有條件都相同的情況下, _id
字段的默認值是一個ObjectId
並且是單調的,或者一直在增加。
這意味着,給定一個已知的ObjectId
值,則滿足以下條件,以檢索緊接在其之前插入的文檔:
db.collection.find(
{ "_id": { "$lt": ObjectId("538c271a19b3a188ca6135eb") }}
).sort({ "_id": -1 }).limit(1)
那是一般情況。 唯一可能的變化是,各種源都在生成ObjectId
值,並且它們的時鍾設置為不同的時間(如完全不同的UTC時間)。
這樣一來,再加上插入率,您就可以考慮這是否對您足夠好,除了罕見和管理不善的情況外,永遠都不能總是保持訂單狀態。
我可以建議使用索引以獲得最佳性能。
例如: 創建索引:
db.books.ensureIndex({book: 1}) // for next records in collection
db.books.ensureIndex({book: -1}) // for previous records in collection
下一個查詢如下:
db.books.find({book: {$gt:"a"}}).sort({book: 1}).hint({book: 1}).limit(1)
上一個查詢如下:
db.books.find({book: {$lt:"b"}}).sort({book: -1}).hint({book: -1}).limit(1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.