0
我有2個系列:bookings
和timeslots
。MongoDB中2個不同集合之間的鍵值交集
models/booking.js:
var mongoose = require ('../config/db');
var Schema = require('mongoose').Schema;
var ObjectId = Schema.ObjectId;
var bookingSchema = new Schema({
start: {
type: Number,
required: true
},
end: {
type: Number,
required: true
},
date: {
type: Date,
required: true,
default: Date.now
}
});
models/time_slot.js:
var mongoose = require ('../config/db');
var Schema = require('mongoose').Schema;
var ObjectId = Schema.ObjectId;
var timeSlotSchema = new Schema({
start: {
type: Number,
required: true
},
end: {
type: Number,
required: true
},
date: {
type: Number,
required: true,
default: Time.Today
},
enabled: {
type: Boolean,
required: true,
default: true,
},
pickup: {
type: Boolean,
required: true,
default: true,
}
});
兩者有一個共同的領域start
。我希望能夠從timeslots
中獲得start
的值出現在bookings
中的條目。
我曾嘗試:
controllers/time_slot.js:
var timeSlotModel = require('../models/time_slot').model;
var Booking = require('./booking');
Booking.getBookings({}, function(err, bookings) {
if (err) {
console.error(err);
} else {
timeSlotModel.find({start: bookings.start}, function(err, slots) {
if (err) {
console.error(err);
} else {
return next(null, slots);
}
}
}
但是,這並不工作,勿庸置疑,而我得到的錯誤:
MongooseError: Cast to number failed for value "undefined" at path "start"
can y你還向我們展示'getBookings'方法? – drinchev
是預訂數組?因爲那樣.start不會是字段 –
你能告訴我們'TimeSlot'模型嗎? – ZeMoon