我必须处理我的收藏中的元素:
数据:
{
"_id" : ObjectId("599ccef160b543xbf380c99x"),
"code" : "ME0001",
"description" : "Element 1",
"operationCode" : null,
"order" : NumberInt(1),
"level" : NumberInt(0),
"subItems" : [
]
}
当我运行此查询以获取数据时:
var obj = db.itemMenu.findOne({"code": "ME0001"});
问题在于" order"的数据类型。和"等级"字段,如你所见改变:
{
"_id" : ObjectId("599ccef160b543xbf380c99x"),
"code" : "ME0001",
"description" : "Element 1",
"operationCode" : null,
"order" : 1.0,
"level" : 0.0,
"subItems" : [
]
}
如何获取数据不变?
答案 0 :(得分:0)
使用Schema只允许整数:https://docs.mongodb.com/manual/core/schema-validation/
要将所有浮动更新为整数:
db.itemMenu.find( { } ).forEach( function (item) {
item.order = parseInt(item.order); // convert field to int
item.level = parseInt(item.level); // convert field to int
db.itemMenu.save(item);
});
希望它有所帮助。