问题标签 [embedded-documents]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
743 浏览

json - 如何使用 Sails 蓝图查询嵌入式文档

Mongo 描述了这样的嵌入式查询:

因此,我希望嵌入式文档的 Sails 蓝图查询看起来像这样:

但这会返回一个空数组。如何使用蓝图查询嵌入式文档?

0 投票
1 回答
808 浏览

ruby-on-rails - mongoid 通过孩子的 id 获取嵌入的文档父级

我有两个模型

我有第一个模型的一些记录,我可以从我的 rails c 控制台中的第一个模型对象作为 firstmodelobj.second_model 获取第二个模型记录

我已经用谷歌搜索并尝试了足够的东西,但我似乎无法从第二个模型(子)对象的 id 中找到第一个模型(父)对象。

提前致谢。

0 投票
2 回答
16187 浏览

mongodb - 将嵌入文档插入到 mongodb 文档中的新字段

我在 mongodb 集合中有一个文档,如下所示:

我想添加一个新字段“PackSizes”,它可能是也可能不是数组类型,然后想在其中嵌入一个文档。喜欢-

我是 mongodb 的新手。请帮忙。

0 投票
2 回答
824 浏览

mongodb - 为什么 MongoDB 不支持查询存储在散列数组中的嵌入式文档的属性?

为什么 MongoDB 不支持查询使用哈希存储的嵌入式文档的属性?

例如,假设您有一个名为“invoices”的集合,它是这样创建的:

使用这种结构,使用 $elemMatch、点语法或位置运算符 ($) 的 MongoDB 查询无法访问每个 productsBySku 成员的任何属性。

例如,您不能执行以下任何操作:

因此,要查找缺货产品,您必须使用 $where 查询,例如:

在技​​术层面上......为什么他们设计 MongoDB 时对查询有非常严格的限制?对于这个看似重大的缺陷,肯定有某种技术原因。这是否无法将对象列表作为数组处理,忽略键,只是 JavaScript 作为一种语言的限制?或者这是 MongoDB 内部某些架构决策的结果?

只是好奇。

0 投票
1 回答
42 浏览

mongodb - 使用子嵌入文档更新复杂模式

我正在尝试使用 mongodb 更新子嵌入文档,但不起作用。

我想要一个chapter.id & quest.id,更新这个文件的百分比(只有这个)

我的架构看起来像:

我试过这个:

并有这个错误

如果有人可以帮助我,我用 0 做,这可能是架构问题?

0 投票
0 回答
114 浏览

vba - 锁定嵌入文档中的文本字段

我的任务是更新通过替换模板中的文本来生成报告的电子表格。以前,工作表引用了一个外部/单独的文件——我的工作是让它在嵌入的文档中工作。

我目前有我想在嵌入文档模板中插入的每个输入的文本表单字段。就目前而言,用户可以随心所欲地编辑文档模板,但如果他们不小心删除了文本表单域(同样,文本通过 vba 宏替换),那么它将破坏宏并且电子表格将无用。

我的问题:

是否有某种方法可以锁定或保护文本表单字段以使文档的其余部分可编辑?我本质上想要“仅文本表单字段”保护的反面。

或者,有没有更好的方法来处理这个项目?我正在考虑让电子表格保持原样,但如果有任何问题,请包含一个“重置”按钮,将模板恢复到其原始状态。如果我采用这种方法,则不需要外部文件。迄今为止,这样做的尝试被证明是不成功的。

我的一般方法/算法如下:

  1. 打开参考文档
  2. 用纯文本通过书签替换所有文本表单字段,确保之后重新分配书签(以免在它们多次运行宏时丢失它们)。
  3. 将嵌入的文档另存为 .doc 并插入输入
  4. 将所有带书签的输入替换为文本表单字段以将模板返回到其原始状态

任何信息将不胜感激。我慢慢地没时间了,感觉卡住了。

非常感谢!

-秀智

0 投票
2 回答
1058 浏览

mongodb - $elemMatch 嵌入文档

这是我正在使用的内容:

我想要的是每个文档的计数,这些文档具有一定范围内的“实例日期”(比如说一个月)以及某个名称。我使用了两个带有“elemMatch”的查询,不幸的是我没有得到我期望的结果。这是我尝试使用 elemMatch 和 instances.date 的方法:

这是一个嵌套的 elemMatch :

提前致谢。

0 投票
1 回答
291 浏览

json - Get empty array on a bson doc from mongoid for newly initialized parent object

Trying to get my initial object to have an empty array the represents an embedded has many documents that currently has no documents embedded.

I can get the relationship in the json string when it has a doc embedded or after I delete all embedded docs. But before any docs are embedded I do not get the attribute character_classes in the json string.

You can see my models below and below that IRB outputs to show what I get when I use to_json and as_document. The first set I don't get the character_classes both after the add and the delete I do...

The question: how do I get the initial set up to pass character_classes as an empty array?

===========Models==========================

==========IRB==============================

> char = Character.first

=> #<Character _id: 550a1bd94e696383d1020000, created_at: 2015-03-19 00:44:09 UTC, updated_at: 2015-03-19 00:44:09 UTC>

> char.character_classes

=> []

> char.as_document

=> {"_id"=>BSON::ObjectId('550a1bd94e696383d1020000'), "updated_at"=>2015-03-19 00:44:09 UTC, "created_at"=>2015-03-19 00:44:09 UTC}

> char.to_json

=> "{\"_id\":{\"$oid\":\"550a1bd94e696383d1020000\"},\"created_at\":\"2015-03-19T00:44:09.232Z\",\"updated_at\":\"2015-03-19T00:56:01.257Z\"}"

> char.character_classes.create(title: "data")

=> [#<CharacterClass _id: 550a1d914e69638730000000, title: "data", character_level: 1>]

> char.as_document => {"_id"=>BSON::ObjectId('550a1bd94e696383d1020000'), "updated_at"=>2015-03-19 00:44:09 UTC, "created_at"=>2015-03-19 00:44:09 UTC, "character_classes"=>[{"_id"=>BSON::ObjectId('550a1d914e69638730000000'), "title"=>"data", "character_level"=>1}]}

> char.to_json

=>"{\"_id\":{\"$oid\":\"550a1bd94e696383d1020000\"},\"character_classes\":[{\"_id\":{\"$oid\":\"550a20a74e69638730010000\"},\"character_level\":1,\"title\":\"data\"}],\"created_at\":\"2015-03-19T00:44:09.232Z\",\"updated_at\":\"2015-03-19T00:56:01.257Z\"}"

> char.character_classes.destroy_all

=> 1

> char.character_classes

=> []

> char.as_document => {"_id"=>BSON::ObjectId('550a1bd94e696383d1020000'), "updated_at"=>2015-03-19 00:44:09 UTC, "created_at"=>2015-03-19 00:44:09 UTC, "character_classes"=>[]}

> char.to_json

=> "{\"_id\":{\"$oid\":\"550a1bd94e696383d1020000\"},\"character_classes\":[],\"created_at\":\"2015-03-19T00:44:09.232Z\",\"updated_at\":\"2015-03-19T00:56:01.257Z\"}"

Edited

I have realize since having this issue that is has nothing to do with to_json or as_document. The reason it is not getting pulled is because only attributes with values are placed in the database. So when creating a new object, since the embedded docs don't exist yet they are not placed in the database. So when I ask for the record it is just giving attributes that had some sort of value.

For normal attributes I can solve this by making a blank default. But there is no default option on embeds many.

Does anyone know how to initialize the relationship so that is place an empty array into the database?

0 投票
3 回答
25792 浏览

mongodb - MongoDB:如何通过嵌套文档中的 id 查找文档

给定这样的集合:..

...我如何找到文件accounts.N._id?我试过这个...

...但它不起作用,因为我只得到_id所有文件中的一个:

我错过了什么吗?

编辑

我真正需要的结果是这样的:

例如,我需要查找accounts.N._id但不显示嵌套文档本身。

0 投票
1 回答
49 浏览

arrays - 索引嵌入文档的键的真正含义是什么?

我仍然无法理解为嵌入文档的键编制索引是如何真正起作用的。
假设我有以下博客文章集:

假设我现在在评论中的 sender 属性上设置了一个索引:

现在的问题是:
这是否意味着为发送者按升序排序的所有元素创建一个大索引,无论它们在哪个数组中?还是为每个数组创建一个索引?
为了更清楚:当我这样做时

它会遍历每篇博客文章并查找每个数组,直到在该数组中找到一条记录并移动到下一篇文章中的下一个数组吗?或者有一个大索引,其中每条记录(由发送者排序)映射到该匹配所在的原始数组?