我正在嘗試使用登錄用戶標識查找對象。
function getItems(req, res) {
var userId = JSON.stringify(req.user._id);
Items.find({user_id: userId}, function(err, items) {
if (err) {
res.send(err)
}
else {
res.json(items);
}
});
}
// Logged-in user
app.get('/userItems', isLoggedIn, function(req, res) {
getItems(req, res);
});
用戶JSON數據是這樣的:
"_id": {
$oid": "55c772bce97e9a500b3754ae"
}
Item對象是這樣的:
{
"_id": {
"$oid": "55d086a182377f840844ee78"
},
"user_id": "55c772bce97e9a500b3754ae",
itemSpecs:[
//...
]
}
它返回空數組,因爲用戶id不匹配user_id說明我猜。當我嘗試設置時:
var userId = '55c772bce97e9a500b3754ae';
它返回具有userId的項目。
var userId = JSON.stringify(req.user._id);
console.log(typeof userId); // >> String
因此,來自用戶對象的userId和來自items對象的user_id是相同的類型:String。
也許這真的是愚蠢的,但我看不出爲什麼用戶_id對象不匹配USER_ID中的項目對象。
如何獲取已登錄用戶標識的項目,使用_id。$ oid對象的登錄用戶標識?
這意味着你錯誤地導入了你的數據。這裏的'$ oid'是**意味着要被轉換成['ObjectId'](http://docs.mongodb.org/manual/reference/object-id/)BSON類型,而不是你在這裏所擁有的。在覈心文檔中閱讀[擴展json](http://docs.mongodb.org/manual/reference/mongodb-extended-json/)。 ['mongoimport'](http://docs.mongodb.org/master/reference/program/mongoimport/)工具也能正確處理這些數據。 –
var userId = req.user._id.toString();解決它thnx! – Mar