Kar*_*elė 7 mongoose mongodb node.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test', {user: 'mongod'});
mongoose.connection.once('open', function () {
Run Code Online (Sandbox Code Playgroud)
我创建了一个带有一个字段和严格的模型:false
var Foo = mongoose.model('Foo', mongoose.Schema({
foo: String
}, {strict: false}));
Run Code Online (Sandbox Code Playgroud)
然后保存带有两个字段的模型
Foo.create({foo: "FOO", bar: "BAR"}, function () {
Run Code Online (Sandbox Code Playgroud)
然后阅读并用字段打印
Foo.findOne(function (err, f) {
console.log(f, f.foo, f.bar);
});
});
});
Run Code Online (Sandbox Code Playgroud)
输出是{ foo: 'FOO', bar: 'BAR', _id: 53c249e876be58931f760e70, __v: 0 },'FOO',undefined.新元素已正确保存并console.log可以看到'BAR',但我不能.只要我在架构中添加栏,我也可以看到它.这是预期的行为吗?如何bar在不将其包含在架构中的情况下进行访问?
您可以使用以下方法访问模式中未定义的字段get:
Foo.findOne(function (err, doc) {
console.log(doc, doc.foo, doc.get('bar'));
});
Run Code Online (Sandbox Code Playgroud)
输出:
{ _id: 53c28dad3b2464566cf5672d, foo: 'FOO', bar: 'BAR' } 'FOO' 'BAR'
Run Code Online (Sandbox Code Playgroud)
bar当Mongoose文档doc的inspect方法输出所有字段时,该字段也会在记录时显示.
| 归档时间: |
|
| 查看次数: |
2269 次 |
| 最近记录: |