验证 MongoDB/Mogoose 个保存的数组
Verify MongoDB/Mogoose saved array
我不知道如何在 MongoDB/Mongoose 保存操作后使用 findOne
方法。
// itemrefSchema.js
const itemrefSchema = new mongoose.Schema({
pubRef: [{
type: mongoose.Schema.Types.Mixed,
ref: 'pubRefs'
}],
itemSpec: [{
type: mongoose.Schema.Types.Mixed,
ref: 'pubRefs'
}],
munInspect: [{
type: mongoose.Schema.Types.Mixed,
ref: 'pubRefs'
}]
},
{ minimize: false }
);
const ItemRef = mongoose.model('itemRefs', itemrefSchema);
module.exports = ItemRef;
// modelTest.js
it.only('find a record', (done) => {
let reference = new ItemRef({
pubRef: [{'publication': 'military pub 1'}, {'address': '../media/a001.pdf'}],
itemSpec: [{'publication': 'item spec 1'}, {'address': '../media/a001spec.pdf'}],
munInspect: [{'publication': 'mun inspection 1'}, {'address': '../media/a001inspec.pdf'}]
});
reference.save().then(() => {
/*ItemRef.
find().
where('pubRef').equals('pulication').
select('publication address').
exec(() => {
console.log(callback);
done();
});
*/
//});
ItemRef.findOne({'ItemRef': 'pubRef'})
.then((result) => {
console.log(result);
//assert(result.publication === 'DD Form 626');
done();
});
//console.log(result);
//done();
});
});
我知道如果我取消注释我的 console.log(result)
并注释掉 findOne
方法,就会保存参考数据。我从 Mongoose 的 promise 中获取数据,如下所示:
{ _id: 5b1ef810e8609509bc81fa19,
createdAt: 2018-06-11T22:30:40.216Z,
updatedAt: 2018-06-11T22:30:40.216Z,
__v: 0,
munInspect:
[ { publication: 'mun inspection 1' },
{ address: '../media/a001inspec.pdf' } ],
itemSpec:
[ { publication: 'item spec 1' },
{ address: '../media/a001spec.pdf' } ],
pubRef:
[ { publication: 'military pub 1' },
{ address: '../media/a001.pdf' } ] }
√ find a record (150ms)
我试图通过选择 munInspect
中的任何一个并验证 MongoDB 保存了内容来构建该断言。当我执行 findOne
方法时,我得到 'null' 的响应。任何的意见都将会有帮助。我哪里错了?
你可以试试下面的保存功能
reference.save().then((saveresult) => {
//or you can directly print result like below
console.log(saveresult);
ItemRef.findOne({ '_id': saveresult._id })
.then((result) => {
//Now you can check your desired result
console.log(result);
done();
});
});
我不知道如何在 MongoDB/Mongoose 保存操作后使用 findOne
方法。
// itemrefSchema.js
const itemrefSchema = new mongoose.Schema({
pubRef: [{
type: mongoose.Schema.Types.Mixed,
ref: 'pubRefs'
}],
itemSpec: [{
type: mongoose.Schema.Types.Mixed,
ref: 'pubRefs'
}],
munInspect: [{
type: mongoose.Schema.Types.Mixed,
ref: 'pubRefs'
}]
},
{ minimize: false }
);
const ItemRef = mongoose.model('itemRefs', itemrefSchema);
module.exports = ItemRef;
// modelTest.js
it.only('find a record', (done) => {
let reference = new ItemRef({
pubRef: [{'publication': 'military pub 1'}, {'address': '../media/a001.pdf'}],
itemSpec: [{'publication': 'item spec 1'}, {'address': '../media/a001spec.pdf'}],
munInspect: [{'publication': 'mun inspection 1'}, {'address': '../media/a001inspec.pdf'}]
});
reference.save().then(() => {
/*ItemRef.
find().
where('pubRef').equals('pulication').
select('publication address').
exec(() => {
console.log(callback);
done();
});
*/
//});
ItemRef.findOne({'ItemRef': 'pubRef'})
.then((result) => {
console.log(result);
//assert(result.publication === 'DD Form 626');
done();
});
//console.log(result);
//done();
});
});
我知道如果我取消注释我的 console.log(result)
并注释掉 findOne
方法,就会保存参考数据。我从 Mongoose 的 promise 中获取数据,如下所示:
{ _id: 5b1ef810e8609509bc81fa19,
createdAt: 2018-06-11T22:30:40.216Z,
updatedAt: 2018-06-11T22:30:40.216Z,
__v: 0,
munInspect:
[ { publication: 'mun inspection 1' },
{ address: '../media/a001inspec.pdf' } ],
itemSpec:
[ { publication: 'item spec 1' },
{ address: '../media/a001spec.pdf' } ],
pubRef:
[ { publication: 'military pub 1' },
{ address: '../media/a001.pdf' } ] }
√ find a record (150ms)
我试图通过选择 munInspect
中的任何一个并验证 MongoDB 保存了内容来构建该断言。当我执行 findOne
方法时,我得到 'null' 的响应。任何的意见都将会有帮助。我哪里错了?
你可以试试下面的保存功能
reference.save().then((saveresult) => {
//or you can directly print result like below
console.log(saveresult);
ItemRef.findOne({ '_id': saveresult._id })
.then((result) => {
//Now you can check your desired result
console.log(result);
done();
});
});