首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB复制数组"_id“的"_id”

MongoDB复制数组"_id“的"_id”
EN

Database Administration用户
提问于 2016-07-21 16:01:29
回答 1查看 2.5K关注 0票数 1

考虑一下我的独立mongodb实例中的db "test“。我创建了一个名为testCol的集合,并插入了一个具有以下语法的文档:

代码语言:javascript
复制
db.testCol.insert({_id:{"age":22,"empId":1},"DOJ":"22JUL"})

其结果是:

WriteResult({ "nInserted“:1 })

在请求时

代码语言:javascript
复制
db.testCol.find()

我得到了

{ "_id“:{”年龄“:22,"empId”:1 },"DOJ“:”22 DOJ“}

但是,在插入具有相同_id的另一个文档时,使用语法对数组元素的不同定位:

代码语言:javascript
复制
db.testCol.insert({_id:{"empId":1,"age":22},"DOJ":"22JUL"})

其结果是:

WriteResult({ "nInserted“:1 })

在查询集合时,请使用

代码语言:javascript
复制
db.testCol.find()

我得到了

{ "_id“:{”年龄“:22,"empId”:1 },“司法部”:“22_id”}

{ "_id“:{ "empId”:1,“年龄”:22 },“司法部”:“22_id”}

这是一个错误吗?因为要使用惟一的_id使用语法查询文档:

代码语言:javascript
复制
db.testCol.find({"_id.age":22,"_id.empId":1})

会回来

{ "_id“:{”年龄“:22,"empId”:1 },“司法部”:“22_id”}

{ "_id“:{ "empId”:1,“年龄”:22 },“司法部”:“22_id”}

为什么会发生这种事?如果mongodb遵循特定的_id结构,那么它不应该只从find命令返回一个文档吗?如果mongodb不遵循特定的结构,那么它如何让我插入多个文档?

EN

回答 1

Database Administration用户

发布于 2016-08-23 15:50:17

当使用对象作为唯一字段(如MongoDB字段)的值时,我意识到order对_id非常重要。

不确定它是否可以被称为bug。

尽管如此,关于您的查询:

代码语言:javascript
复制
db.testCol.find({"_id.age":22,"_id.empId":1})

实际上,您要做的是基于_id字段的各个组件而不是整个_id字段进行查询。

如果您的查询以整个_id为目标,您将得到更好的服务。这个查询应该能实现您想要的结果。

代码语言:javascript
复制
db.testCol.find({"_id": {"age" : 22, "empId" : 1}})
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/144569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档