在最近的设计数据库时,犯了一个低级的错误,就是设置内置文档是定义了错误了,导致数据取不出,去找了很多资料都无法解决。最后看了一了一下自己设置的model文件。配置错误,所以导致数据取不出了。

数据库时这样设计的

var mongoose = require('mongoose'),
Schema = mongoose.Schema; //realTimeloginSchema 停车场运行实时监控
var realTimeloginSchema = new Schema({
realuserId: {type: String}, //用户ID
realPwd: {type: String}, //用户密码
realAddTime: {type: Date}, //注册时间
realLoginTime: {type: Date}, //登录时间
realRoot:{type: Boolean,default:false}, //是否是超级用户,默认是false
realPower: {type: Boolean,default:false}, //添加用户权限,默认是false
realpark:{
parkId:{type:String}, //停车场名称
parkName:{type:String}, //停车场ID
scale: {type: Number}, //停车场总车位
pionts:{ lng :{type:String}, //经度
lat :{type:String} //纬度
}
}
}
); module.exports = mongoose.model("realTimelogin ", realTimeloginSchema);

自己在可视化工具robomongo是这样数据是这样的:

{
"_id" : ObjectId("58afe978c0120986cddacf6c"),
"realPwd" : "124",
"realuserId" : "124",
"realAddTime" : ISODate("2017-02-26T10:05:51.643Z"),
"realPower" : true,
"realRoot" : false,
"realpark" : [
{
"parkId" : "99999888881474167822",
"parkName" : "小猫停车场",
"scale" : 200
},
{
"parkId" : "0755000021433988491",
"parkName" : "软件产业基地停车场",
"scale" : 500
},
{
"parkId" : "18682397901474189348",
"parkName" : "新版测试停车场",
"scale" : 1250
}
]
}

  console.log(doc.realpark);是可以打印数据的,但是一直取不到realpark的长度,所以无法遍历对象。

之后查看了一下官网文档,才知道自己定义错误,应该这样定义:

var mongoose = require('mongoose'),
Schema = mongoose.Schema; //realTimeloginSchema 停车场运行实时监控
var realTimeloginSchema = new Schema({
realuserId: {type: String}, //用户ID
realPwd: {type: String}, //用户密码
realAddTime: {type: Date}, //注册时间
realLoginTime: {type: Date}, //登录时间
realRoot:{type: Boolean,default:false}, //是否是超级用户,默认是false
realPower: {type: Boolean,default:false}, //添加用户权限,默认是false
realpark: {type: Object, default: []}
/* realpark:{
parkId:{type:String}, //停车场名称
parkName:{type:String}, //停车场ID
scale: {type: Number}, //停车场总车位
pionts:{ lng :{type:String}, //经度
lat :{type:String} //纬度
} }
*/
}
); module.exports = mongoose.model("realTimelogin ", realTimeloginSchema);

  这样就可以得到内嵌对象的长度,遍历对象。

mongoDB内置文档定义的更多相关文章

  1. MongoDB内置文档查看和修改

    MongoDB设计的时候,有时候会设计内置文档,方便某个对象的统一.在这里略写了查看内置文档和更新内置文档. 1.查看  表为:realtimelogin   realName为:123 realpa ...

  2. MongoDB 内嵌文档

    MongoDB是文档型的数据库系统,doc是MongoDB的数据单位,每个doc相当于关系型数据库的数据行(row),doc和row的区别在于field的原子性:row中的column是不和分割的原子 ...

  3. mongodb内嵌文档的javaapi,增删改查

    数据结构: {"_id" : "000000001",  //Mongodb默认主键 "UID" : "000000001&quo ...

  4. MongoDB内嵌文档操作

    实体定义: [BsonIgnoreExtraElements] public class Person : BaseEntity { public string FirstName { get; se ...

  5. mongodb内嵌文档的查询

    本文转自:http://blog.163.com/wm_at163/blog/static/1321734902012526103825481/ 1 > db.blog.findOne() { ...

  6. mongodb对数组元素及内嵌文档进行增删改查操作(转)

    from:https://my.oschina.net/132722/blog/168274 比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: &l ...

  7. mongodb查询内嵌文档

    mongodb查询内嵌文档   假设有这样一个文档: db.XXX.remove(); db.XXX.insert({"id":1, "members":[{& ...

  8. MongoDB对数组元素及内嵌文档进行增删改查操作

    比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: {    "_id" : "195861",    &qu ...

  9. MongoDB查询或修改内嵌文档

    作为非关系型数据库中的佼佼者,MongoDB一大优势在于能够在一条文档中存储对象类型的数据,适当增加冗余来让数据库更好用.文档中一个对象类型的字段在MongoDB中被称为内嵌文档(Embedded) ...

随机推荐

  1. QT实现FTP服务器(一)

    QListenSocket类的实现: #include "QListenSocket.h" #include <QTcpSocket> #include <QDe ...

  2. 解决ubuntu10.04不能上网

    1:命令行输入:lspci查看驱动,最后几行如果有ethernet controller:atheros communications ar8151 v1.0*的话,就说明驱动没有安装好, 2:下载地 ...

  3. POJ 2421 Constructing Roads (Kruskal算法+压缩路径并查集 )

    Constructing Roads Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 19884   Accepted: 83 ...

  4. POJ1426 Find The Multiple —— BFS

    题目链接:http://poj.org/problem?id=1426 Find The Multiple Time Limit: 1000MS   Memory Limit: 10000K Tota ...

  5. MYSQL进阶学习笔记六:MySQL视图的创建,理解及管理!(视频序号:进阶_14,15)

    知识点七:MySQL视图的创建(14) 视图的定义: 什么是视图: 视图数由查询结果形成的一张虚拟的表. 什么时候要用到视图? 如果某个查询结果出现的非常频繁,也就是,要经常拿这个查询结果来做子查询. ...

  6. 转:Oracle:删除表空间

    原文:http://space.itpub.net/40239/viewspace-365948 OMF和非OMF管理的数据文件在DROP TABLESPACE时是否会自动删除,做了测试: SQL&g ...

  7. stl里面的空间适配器

    一般而言,如果频繁地向system heap申请和释放空间很小的内存空间块(小于128B的),就会对系统内存资源产生很多内存碎片(fragment)的问题,而C++的::operator new() ...

  8. Java中的switch语句

    switch可以替代if..else..,另外据说switch采用二分搜索,效率会更高一点. switch(type) { case 1 : type_name="INCOMING" ...

  9. mysql负载均衡方案

    mysql负载均衡方案 一.直接连接 数据库的读写分离方案很多,这里介绍基于mysql数据库的读写分离方案. 比较常见的读写分离方案如下: 1 基于查询分离 最简单的分离方法是将读和写分发到主和从服务 ...

  10. 关于serviceComb中的swagger抛出NullPointerException

    在使用serviceComb时, 如果抛出以下异常: org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions > ...