0
可有人請教育我這個:迭代通過性LevelDB
試圖用性LevelDB在node.js的情況下,存儲name
關鍵和針對它的ID
串,我希望能夠以檢查ID
已經在數據庫中,所以...
看着documentation我不知道我在做什麼錯。
我db.js
這裏:
var level = require('level');
var path = require('path');
var dbPath = process.env.DB_PATH || path.join(__dirname, 'mydb');
var db = level(dbPath);
module.exports = db;
而且我希望能夠查詢數據庫,所以我的初步嘗試app.js
這裏:
var db = require('./db', {
valueEncoding: 'json'
})
db.put('name', 'ID001')
db.put('name', 'ID002')
db.put('name', 'ID003')
db.put('name', 'ID004')
db.put('name', 'ID005')
db.put('name', 'ID006')
db.put('name', 'ID007')
db.createReadStream()
.on('data', function (entry) {
console.log(entry.value);
})
我以爲我只是得到了在數據庫中的最後一個值,但重複運行後我得到這樣的輸出:
spences10:~/workspace/level-db $ node app.js
ID006
spences10:~/workspace/level-db $ node app.js
ID007
spences10:~/workspace/level-db $ node app.js
ID007
spences10:~/workspace/level-db $ node app.js
ID007
spences10:~/workspace/level-db $ node app.js
ID005
spences10:~/workspace/level-db $ node app.js
ID007
spences10:~/workspace/level-db $ node app.js
ID007
spences10:~/workspace/level-db $ node app.js
ID006
spences10:~/workspace/level-db $ node app.js
ID005
spences10:~/workspace/level-db $ node app.js
ID003
spences10:~/workspace/level-db $ node app.js
ID007
我只是想能夠遍歷或查詢數據庫,看看是否需要將值放在那裏。
我也使用.get
具有相同排序結果的
var db = require('./db', {
valueEncoding: 'json'
})
db.put('name', 'ID001')
db.put('name', 'ID002')
db.put('name', 'ID003')
db.put('name', 'ID004')
db.put('name', 'ID005')
db.put('name', 'ID006')
db.put('name', 'ID007')
db.get('name', function(err, value) {
if (err) {
return err;
}
console.log('value:', value);
});
輸出試圖...
spences10:~/workspace/level-db $ node app.js
value: ID007
spences10:~/workspace/level-db $ node app.js
value: ID004
spences10:~/workspace/level-db $ node app.js
value: ID005
spences10:~/workspace/level-db $ node app.js
value: ID007
spences10:~/workspace/level-db $ node app.js
value: ID003
spences10:~/workspace/level-db $ node app.js
value: ID007
謝謝,我確實嘗試過使用它,但它只會返回剛剛放入db中的內容?我誤解了這個?所以這個想法是輸入關鍵字+值,然後立即得到你剛纔輸入的值?我希望能夠看到是否有一個id,所以'get('name','valueOfKeyValuePair'{console.log('yes that value is there')}) – spences10
對於示例代碼是的,它將返回剛纔你輸入的內容。對於作爲服務運行的實際應用程序,當它響應用戶請求時執行「put」操作,可以使用get來檢查密鑰的值,你會得到最後寫入的值。 – cjungel
然後我錯過了一些東西,我希望能夠將值添加到數據庫中。在稍後的一點,我想檢查一下,看看我的值是否已經被添加,所以在提供的示例中,我必須將它添加到數據庫中,然後檢查是否剛剛添加它? – spences10