Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB-指定集合只能包含一个文档_Mongodb - Fatal编程技术网

MongoDB-指定集合只能包含一个文档

MongoDB-指定集合只能包含一个文档,mongodb,Mongodb,我想创建一个名为“status”的特殊MongoDB集合,并指定它只能包含一个文档。在任何情况下,我都不希望此集合包含多个文档。这可能吗?是的,可以通过使用为集合大小和文档数量设置上限 以下是创建封顶集合的方法: db.createCollection("log", { capped : true, size : 5000, max : 1 } ) 此集合的大小始终小于5000,并且只能包含一个文档 请注意,封顶集合的工作方式类似于循环缓冲区:一旦集合填满其分配的空间,它将

我想创建一个名为“status”的特殊MongoDB集合,并指定它只能包含一个文档。在任何情况下,我都不希望此集合包含多个文档。这可能吗?

是的,可以通过使用为集合大小和文档数量设置上限

以下是创建封顶集合的方法:

db.createCollection("log", { capped : true, size : 5000, max : 1 } )
此集合的大小始终小于5000,并且只能包含一个文档


请注意,封顶集合的工作方式类似于循环缓冲区:一旦集合填满其分配的空间,它将覆盖集合中最旧的文档,从而为新文档腾出空间。

是的,可以通过使用为集合大小和文档数设置封顶

以下是创建封顶集合的方法:

db.createCollection("log", { capped : true, size : 5000, max : 1 } )
此集合的大小始终小于5000,并且只能包含一个文档


请注意,封顶集合的工作方式类似于循环缓冲区:一旦集合填满其分配的空间,它将覆盖集合中最旧的文档,从而为新文档腾出空间。

是的,可以通过使用为集合大小和文档数设置封顶

以下是创建封顶集合的方法:

db.createCollection("log", { capped : true, size : 5000, max : 1 } )
此集合的大小始终小于5000,并且只能包含一个文档


请注意,封顶集合的工作方式类似于循环缓冲区:一旦集合填满其分配的空间,它将覆盖集合中最旧的文档,从而为新文档腾出空间。

是的,可以通过使用为集合大小和文档数设置封顶

以下是创建封顶集合的方法:

db.createCollection("log", { capped : true, size : 5000, max : 1 } )
此集合的大小始终小于5000,并且只能包含一个文档


请注意,封顶集合的工作方式类似于循环缓冲区:一旦集合填满其分配的空间,它就会通过覆盖集合中最旧的文档来为新文档腾出空间。

您可以通过唯一索引来完成此操作。例如:

rs0:PRIMARY> db.unique.insert({a:1})
rs0:PRIMARY> db.unique.find()
{ "_id" : ObjectId("547e2c8c9678b5b7ab75a014"), "a" : 1 }
rs0:PRIMARY> db.unique.ensureIndex({b:1}, {unique:true})
rs0:PRIMARY> db.unique.insert({a:2})
E11000 duplicate key error index: test.unique.$b_1  dup key: { : null }

在您知道永远不会成为架构一部分的任何字段上添加唯一索引。(在本例中为“b”),然后它将被索引为null,从而防止插入任何其他null项。当它尝试插入时,会在你的应用程序代码中引发异常。

你可以通过唯一索引来实现。例如:

rs0:PRIMARY> db.unique.insert({a:1})
rs0:PRIMARY> db.unique.find()
{ "_id" : ObjectId("547e2c8c9678b5b7ab75a014"), "a" : 1 }
rs0:PRIMARY> db.unique.ensureIndex({b:1}, {unique:true})
rs0:PRIMARY> db.unique.insert({a:2})
E11000 duplicate key error index: test.unique.$b_1  dup key: { : null }

在您知道永远不会成为架构一部分的任何字段上添加唯一索引。(在本例中为“b”),然后它将被索引为null,从而防止插入任何其他null项。当它尝试插入时,会在你的应用程序代码中引发异常。

你可以通过唯一索引来实现。例如:

rs0:PRIMARY> db.unique.insert({a:1})
rs0:PRIMARY> db.unique.find()
{ "_id" : ObjectId("547e2c8c9678b5b7ab75a014"), "a" : 1 }
rs0:PRIMARY> db.unique.ensureIndex({b:1}, {unique:true})
rs0:PRIMARY> db.unique.insert({a:2})
E11000 duplicate key error index: test.unique.$b_1  dup key: { : null }

在您知道永远不会成为架构一部分的任何字段上添加唯一索引。(在本例中为“b”),然后它将被索引为null,从而防止插入任何其他null项。当它尝试插入时,会在你的应用程序代码中引发异常。

你可以通过唯一索引来实现。例如:

rs0:PRIMARY> db.unique.insert({a:1})
rs0:PRIMARY> db.unique.find()
{ "_id" : ObjectId("547e2c8c9678b5b7ab75a014"), "a" : 1 }
rs0:PRIMARY> db.unique.ensureIndex({b:1}, {unique:true})
rs0:PRIMARY> db.unique.insert({a:2})
E11000 duplicate key error index: test.unique.$b_1  dup key: { : null }

在您知道永远不会成为架构一部分的任何字段上添加唯一索引。(在本例中为“b”),然后它将被索引为null,从而防止插入任何其他null项。当它尝试插入时,将在你的应用程序代码中引发异常。

你可以使用限制为1的封顶集合。从来没有试过。问题是它一次只能包含1个文档,但并不总是同一个文档。谢谢-现在就开始研究这个方法。你可以使用一个限制为1的封顶集合。从来没有试过。问题是它一次只能包含1个文档,但并不总是同一个文档。谢谢-现在就开始研究这个方法。你可以使用一个限制为1的封顶集合。从来没有试过。问题是它一次只能包含1个文档,但并不总是同一个文档。谢谢-现在就开始研究这个方法。你可以使用一个限制为1的封顶集合。从来没有试过。问题是它一次只能包含1个文档,但并不总是同一个文档。谢谢-现在就开始研究这个方法。很好的方法!做这件事的好方法!做这件事的好方法!做这件事的好方法!