Sử dụng node.js, mongodb trên mongoHQ và mongoose. Tôi đang thiết lập một lược đồ cho Danh mục. Tôi muốn sử dụng tài liệu ObjectId làm categoryId của tôi.Cách đặt ObjectId làm kiểu dữ liệu trong mongoose
var mongoose = require('mongoose');
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var Schema_Category = new Schema({
categoryId : ObjectId,
title : String,
sortIndex : String
});
sau đó tôi chạy
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();
});
Chú ý rằng tôi không cung cấp giá trị cho categoryId. Tôi cho rằng đàn em mong muốn sẽ sử dụng lược đồ để tạo nó nhưng tài liệu có "_id" thông thường và không phải là "categoryId". Tôi đang làm gì sai?
Câu trả lời hoàn hảo! Cảm ơn! – idophir
Sau khi thiết lập thuộc tính ảo, tôi đã thử: db.cats.find ({categoryId: ObjectId ("id")}) nhưng có kết quả null. khi tôi sử dụng db.cats.find ({_ id: ObjectId ("id")}) Tôi đã nhận được một tài liệu trở lại. Vì vậy, có vẻ như không thể sử dụng thuộc tính ảo để tìm kiếm. Tôi nghĩ rằng việc quản lý mã có thể dễ dàng hơn nếu có thể tham chiếu từng ID bằng tên rõ ràng, thay vì sử dụng _id cho mọi thứ. Chỉ là một ý nghĩ ... – idophir