正文
mongodb集合文档全部添加字段 mongodb修改集合名称
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
mongodb Aggregation聚合操作之$collStats
在上一篇 mongodb Aggregation聚合操作之$lookup 中详细介绍了mongodb聚合操作中的$lookup使用以及参数细节。本篇将开始介绍Aggregation聚合操作中的$collStats操作。
说明:
返回关于集合或视图的统计信息。请注意:$collStats必须是聚合管道的第一个阶段,否则管道将返回错误。
语法:
{
$collStats:
{
latencyStats: { histograms: boolean },
storageStats: {},
count: {}
}
}
参数讲解:
latencyStats:将延迟统计信息添加到返回文档中。
latencyStats.histograms:如果为真,则向latencyStats中嵌入的文档添加延迟直方图信息。
storageStats:将存储统计信息添加到返回文档中。
count:将集合中的文档总数添加到返回文档中,计数基于集合的元数据,该元数据为分片集群提供了快速但有时不准确的计数。
注意点:
对于副本集中的集合或集群中的非分片集合,$collStats输出单个文档。对于分片集合,$collStats为每个分片输出一个文档。输出文档包括以下字段
ns:请求的集合或视图的名称空间。
shard:输出文档对应的切分的名称。仅当$collStats在分片集群上运行时才出现。分片集合和非分片集合都将生成此字段。
host:生成输出文档的mongod进程的主机名和端口。
localTime:MongoDB服务器上的当前时间,自Unix时代以来以UTC毫秒表示。
latencyStats:与集合或视图的请求延迟相关的统计信息集合。有关此文档的详细信息,请参阅latencyStats文档。仅在指定latencyStats:{}选项时出现。
storageStats:与集合的存储引擎相关的统计信息集合。有关此文档的详细信息,请参阅storageStats文档。仅在指定storageStats:{}选项时出现。如果应用于视图,则返回错误。
count:集合中文档的总数。这个数据也可以在storageStats.count中获得,计数基于集合的元数据,该元数据为分片集群提供了快速但有时不准确的计数。只在指定count:{}选项时出现。如果应用于视图,则返回错误。
db.question.aggregate( [ { $collStats: { storageStats: {} } } ] )
mongodb 添加新字段应用全部数据,有谁会吗
用 set 方法试试
db.users.update({"city" : 453},{"$set" : {"user_sex" : 1, "is_vip":1, ..............}})
mongodb Aggregation聚合操作之$project
在上一篇 mongodb Aggregation聚合操作之addFields添加新字段 中详细介绍了mongodb聚合操作中的addFields使用以及参数细节。本篇将开始介绍Aggregation聚合操作中的project 展示字段操作。
说明:
将文档和所请求的字段传递到管道中的下一个阶段。指定的字段可以是输入文档中的现有字段,也可以是新计算的字段。$project接受一个文档,该文档可以指定包含字段、抑制_id字段、添加新字段和重置现有字段的值。或者,您可以指定字段的排除。
语法:
{ $project: { specification(s) } }
初始化数据:
db.books.insertMany([{
"_id" : 1,
title: "abc123",
isbn: "0001122223334",
author: { last: "zzz", first: "aaa" },
copies: 5,
lastModified: "2016-07-28"
},
{
"_id" : 2,
title: "Baked Goods",
isbn: "9999999999999",
author: { last: "xyz", first: "abc", middle: "" },
copies: 2,
lastModified: "2017-07-21"
},
{
"_id" : 3,
title: "Ice Cream Cakes",
isbn: "8888888888888",
author: { last: "xyz", first: "abc", middle: "mmm" },
copies: 5,
lastModified: "2017-07-22"
}])
示例:
1.显示books集合中的title和author字段和id字段,其他字段不展示
db.books.aggregate( [ { $project : { title : 1 , author : 1 } } ] )
2.显示books集合中的title和author字段,其他字段不展示
db.books.aggregate( [ { $project : { _id: 0, title : 1 , author : 1 } } ] )
有条件地排除字段:从MongoDB 3.6开始,您可以在聚合表达式中使用变量REMOVE来有条件地抑制一个字段。
3.下面的$project阶段使用REMOVE变量来排除author.middle字段等于""记录:,如果该字段value值是"",那么该字段不做展示
db.books.aggregate( [
{
$project: {
title: 1,
"author.first": 1,
"author.last" : 1,
"author.middle": {
$cond: {
if: { $eq: [ "", "$author.middle" ] },
then: "$$REMOVE",
else: "$author.middle"
}
}
}
}
] )
结果:
{
"_id" : 1.0,
"title" : "abc123",
"author" : {
"last" : "zzz",
"first" : "aaa"
}
}
{
"_id" : 2.0,
"title" : "Baked Goods",
"author" : {
"last" : "xyz",
"first" : "abc"
}
}
{
"_id" : 3.0,
"title" : "Ice Cream Cakes",
"author" : {
"last" : "xyz",
"first" : "abc",
"middle" : "mmm"
}
}
4.包括计算字段
初始化数据:
db.test.insert({
"_id" : 1,
title: "abc123",
isbn: "0001122223334",
author: { last: "zzz", first: "aaa" },
copies: 5
})
下面的$project阶段添加了新的字段isbn、lastName和copiesSold:
db.test.aggregate(
[
{
$project: {
title: 1,
isbn: {
prefix: { $substr: [ "$isbn", 0, 3 ] },
group: { $substr: [ "$isbn", 3, 2 ] },
publisher: { $substr: [ "$isbn", 5, 4 ] },
title: { $substr: [ "$isbn", 9, 3 ] },
checkDigit: { $substr: [ "$isbn", 12, 1] }
},
lastName: "$author.last",
copiesSold: "$copies"
}
}
]
)
结果:
{
"_id" : 1.0,
"title" : "abc123",
"isbn" : {
"prefix" : "000",
"group" : "11",
"publisher" : "2222",
"title" : "333",
"checkDigit" : "4"
},
"lastName" : "zzz",
"copiesSold" : 5.0
}
5.项目新数组字段
初始化数据:db.test1.insert({ "_id" : ObjectId("55ad167f320c6be244eb3b95"), "x" : 1, "y" : 1 })
示例:
db.test1.aggregate( [ { $project: { myArray: [ "$x", "$y" ] } } ] )
结果:
{
"_id" : ObjectId("55ad167f320c6be244eb3b95"),
"myArray" : [
1.0,
1.0
]
}
mongodb一次能插入多少数据
insert()方法:
下面是在inventory集合中插入一个三个字段的文档:
复制代码代码如下:
db.inventory.insert( { _id: 10, type: "misc", item: "card", qty: 15 } )
在实示例中,文档有一个用户指定的值为10的_id字段,这个值必须在inventory集合中唯一。
update()方法:
调用update()方法使用upsert标志创建一个新文档当没有匹配查询条件的文档时。下面的例子当inventory集合中没有包含{type:"books",item:"journal"}的文档时创建一个新文档:
复制代码代码如下:
db.inventory.update(
{ type: "book", item : "journal" },
{ $set : { qty: 10 } },
{ upsert :true }
)
MongoDB添加_id字段和分配一个唯一的ObjectId作为它的值。新文档包含来自查询query条件的item和type字段,和来自更新update参数的qty字段:
复制代码代码如下:
{ "_id" : ObjectId("51e8636953dbe31d5f34a38a"), "item" : "journal", "qty" : 10, "type" : "book" }
save()方法:
使用save()方法插入一个文档,通过该方法保存一个不包含_id字段的文档或者包含_id字段但该字段值不存在集合中的文档。下面的示例创建一个新的文档在inventory集合:
复制代码代码如下:
db.inventory.save( { type: "book", item: "notebook", qty: 40 } )
MongoDB添加_id字段和分配一个唯一的ObjectId作为它的值。
复制代码代码如下:
{ "_id" : ObjectId("51e866e48737f72b32ae4fbc"), "type" : "book", "item" : "notebook", "qty" : 40 }
Mongo 如何将goods表中id字段为2的所有数据都增加一个status字段,并设置为0?
mongodb常用操作语句
1、现有表以及数据添加字段
db.tbGoodsConsultant.update({}, {$set:{nFlagState:0}}, false, true);
2、给表字段添加索引
db.tbGoodsConsultant.ensureIndex({nFlagState:1});
3、增加数据
db.food.save({"name":"jack","address":{"city":"Shanghai","post":021},"phone":[138,139]});
db.food.save({"uid":"","AL":['','']});
4、删除表、数据库
db.users.drop();
db.dropDatabase();
5、创建索引、数字1表示升序 -1 表示降序
db.user.ensureIndex({"lId":1,"name":-1});
db.system.indexes.find();
6、删除索引
db.mycoll.dropIndex(name)
7、去掉重复数据
db.user.distinct('name');
8、排序sort 1:ASC -1:DESC
db.user.find().sort({"age":1});
9、查询name中包含mongo的数据 %y%
db.user.find({name:/y/});
10、查询name中以d开头的 like 'd%'
db.user.find({name:/^d/});
11、查询指定列name、age数据(name也可以用true||false,true和name:1等同)
db.user.find({},{name:1,age:1});
12、查询2条以后的数据
db.user.find().skip(2);
13、查询在2-10之间的数据
db.user.find().limit(10).skip(2);
kettle的mongodb输入多个字段想加
因为多表关联上发挥作用。
MongoDB是一个文档型、无模式的数据库,自然就很难在关系型数据库中非常擅长的多表关联上发挥作用。尽管后来版本MongoDB增加了$lookup支持单字段关联,但对两个或两个以上的字段关联的需求有点不足。
关于mongodb集合文档全部添加字段和mongodb修改集合名称的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。