在mongoHQ和mongoose上使用node.js,mongodb。我正在爲類別設置架構。我想使用文檔ObjectId作爲我的categoryId。如何將ObjectId設置爲mongoose中的數據類型
var mongoose = require('mongoose');
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var Schema_Category = new Schema({
categoryId : ObjectId,
title : String,
sortIndex : String
});
我然後運行
var Category = mongoose.model('Schema_Category');
var category = new Category();
category.title = "Bicycles";
category.sortIndex = "3";
category.save(function(err) {
if (err) { throw err; }
console.log('saved');
mongoose.disconnect();
});
請注意,我不提供的categoryId值。我假設貓鼬會使用模式來生成它,但文檔具有通常的「_id」而不是「categoryId」。我究竟做錯了什麼?
完美答案! 謝謝! – idophir
設置虛擬屬性後,我嘗試了: db.cats.find({categoryId:ObjectId(「the id」)})但得到空結果。 當我使用db.cats.find({_ id:ObjectId(「id」)})我沒有得到一個文檔。所以它看起來像虛擬財產不能用於搜索。 我認爲如果可以使用明確的名稱引用每個ID,而不是對所有內容使用_id,管理代碼可能會更容易。只是一個想法... – idophir