当前位置: 首页 > news >正文

装饰网站建设重要性企业图标设计图案大全

装饰网站建设重要性,企业图标设计图案大全,久久建筑网能否下载资料,中国安能建设集团有限公司网站在投射中&#xff0c;使用$操作符和$elemMatch返回数组中第一个符合查询条件的元素。而在投射中使用$slice, 能够返回指定数量的数组元素。 定义 投射中使用$slice命令&#xff0c;指定查询结果中返回数组元素的数量。 语法 db.collection.find(<query>,{<arrayFi…

在投射中,使用$操作符和$elemMatch返回数组中第一个符合查询条件的元素。而在投射中使用$slice, 能够返回指定数量的数组元素。

定义

投射中使用$slice命令,指定查询结果中返回数组元素的数量。

语法

db.collection.find(<query>,{<arrayField: {$slice: <number to return}
)db.collection.find(<query>,{ <arrayField: {$slice: [ <number to skip>, <number to return>]}>}
)

其中<number to return>,指定了返回数组元素的数量,当定义为正值时,返回数组的前面几个元素,而定义负值时,返回数组后面的元素。如果定义的值大于数组长度,则返回数组中所有的元素。

<number to skip>,定义了自哪个元素开始,返回数组元素。与<number to return>定义一致,当定义正值时,从数组开头跳过指定数量的数组元素。当定义负值时,从数组第一个元素开始向后跳过指定数量的数组元素。这里<number to skip>的正数和负数,只是指定起点自第一个元素开始跳转的方向和跳动的次数。无论正数还是负数,使用<number to return>获取数组元素时,都是从数组的正向开始获取。

行为

在投射定义查询结果包含字段时,在内嵌文档的数组中使用$slice,内嵌文档只会返回slice定义的字段。

构建包含下面数据的inventory集合,其中details字段是文档类型,details.colors和details.sizes是文档details中的两个数组元素。

db.inventory.insertOne(
{ item: "socks", qty: 100, details: { colors: [ "blue", "red" ], sizes: [ "S", "M", "L"] } }
)

使用$slice返回colors字段中的第一个数组元素

db.inventory.find({},{qty: 1, "details.colors": { $slice: 1}}
)

返回结果

{"_id" : ObjectId("65b82e5b5943471b2e552d50"),"qty" : 100,"details" : {"colors" : [ "blue" ]}
}

在投射定义查询结果不包含字段时,在内嵌文档的数组中使用$slice, 内嵌文档会返回其他字段。

db.inventory.find({},{_id: 0, "details.colors": { $slice: 1}}
)

返回结果

{"item" : "socks","qty" : 100,"details" : {"colors" : [ "blue" ],"sizes" : [ "S", "M", "L" ]}
}

4.4版本前的数据库行为有差异,无论是定义包含字段还是不包含字段,投射中都会包含其他字段。

对视图的查询不支持$slice操作符。

4.4版本开始,使用find, findAndModify定义查询语句的投射中,不能将$slice应用到$操作符号中。下面的查询语句是错误的。

db.inventory.find({"instock.qty": {$gt:25}}, {"instock.$": {$slice:1}}
){"message" : "positional projection cannot be used with an expression or sub object","ok" : 0,"code" : 31271,"codeName" : "Location31271"
}

在文档数组字段使用$slice时,需要注意路径冲突

向集合inventory插入文档。其中instock是文档数组类型的数据。

db.inventory.insertOne({ item: "books", qty: 100, details: { colors: [ "blue", "red" ], sizes: [ "S", "M", "L"] },instock: [{warehouse: "A",qty:35},{warehouse: "B",qty:15},{warehouse: "C",qty:35}]}
)

构建针对instock的投射查询语句

db.inventory.find({},{ "instock": {$slice:1}, "instock.warehouse": 0})

因为instock和instock.warehouse定义的路径冲突,所以此语句无效。

{"message" : "Path collision at instock.warehouce remaining portion warehouce","ok" : 0,"code" : 31249,"codeName" : "Location31249"
}

应用

构建测试集合。向posts集合中插入两条数据,数据包含文档数组类型的字段comments.

db.posts.insertMany([{_id: 1,title: "Bagels are not croissants.",comments: [ { comment: "0. true" }, { comment: "1. croissants aren't bagels."} ]},{_id: 2,title: "Coffee please.",comments: [ { comment: "0. fooey" }, { comment: "1. tea please" }, { comment: "2. iced coffee" }, { comment: "3. cappuccino" }, { comment: "4. whatever" } ]}
])

构建查询语句,返回数组comments中前三个元素。

db.posts.find({}, {comments: {$slice:  3}})

返回数组comments中后面三个元素。

db.posts.find({}, {comments: {$slice:  -3}})

正向跳过1个元素,获取后面的三个元素

db.posts.find({}, {comments: {$slice: [1, 3]}})

反向跳过1个元素,获取后面的三个元素

db.posts.find({}, {comments: {$slice: [-1, 3]}})//返回结果
/* 1 */
{"_id" : 1,"title" : "Bagels are not croissants.","comments" : [{"comment" : "1. croissants aren't bagels."}]
},/* 2 */
{"_id" : 2,"title" : "Coffee please.","comments" : [{"comment" : "4. whatever"}]
}

这个语句的返回结果,就值得探讨了。正常理解可能会认为是跳过数组最后一个元素,然后获取最后一个元素前面的三个元素,即{ comment: "1. tea please" }, { comment: "2. iced coffee" }, { comment: "3. cappuccino" }。但这样获取的方向就是-3,而不是3了。在$slice中指定跳过几个元素时,指定获取元素的数量,只能是正数。也就表示获取元素的方向只能是正向。使用{$slice: [-1, 3]}时,表示从数组第一个元素开始,向后跳转一步,到达第四个元素,再以第四个元素作为起点,获得后面的3个元素。因为第四个元素后面没有数据了,所以只返回一个元素。

http://www.yayakq.cn/news/136213/

相关文章:

  • 徐州做网站最好的公司品牌营销案例
  • 青岛专业网站设计的公司网站制作和推广lv官网
  • 福建省建设厅网站 登录ui设计难学么
  • 襄阳营销型网站建设云主机玩游戏
  • 从代码角度分析网站怎么做安卓网站开发平台
  • 甲马营seo网站优化的青岛鑫隆建设集团网站
  • 上海有多少家网站建设公司济南软件制作
  • 重庆网站制作外包公司建设网商城网站需要在那里备案
  • 南阳网站建设推广12306网站是哪家公司做开发的
  • 餐饮网站做的比较好的是哪个河北邢台wap网站建设
  • 服装网站设计模板在线个人资料制作网站
  • 湛江网站开发哪家专业wordpress vip视频解析
  • 湖南哪里有做网站的品牌策划
  • 西安全网优化 西安网站推广企业微信管理客户
  • 运城网站开发国外那些网站做展厅比较好
  • 淘客优惠券 网站建设郑州网站推广哪家专业
  • 会展类网站模板wordpress公司主题破解版
  • 做业务 哪个网站比较好东莞网络营销新模式
  • 企业网站建设的报价制作网站一年多少钱
  • 优设计网站网站模板工具
  • 成都市建设监理协会网站不断加强门户网站建设
  • 惠州网站建设找惠州邦深圳装修公司哪家比较好
  • 大门户网站网络服务器租赁费高吗
  • 苏州策划网站模板建站公司东莞证券
  • 成都网站建设scjsc888惠州制作公司网站
  • 哪个网站专门做政策解读网站建设开发做网站吧
  • 贵阳网站seo公司现在做网站怎么赚钱
  • 昆明网络公司网站郑州哪个医院看妇科病最好的医院
  • 药品网站网络营销推广怎么做灯塔网站制作公司
  • 韶关公司做网站网站开发完整教程