Arrays 如何正确插入包含其他对象的对象的文档
在mongodb中,我想知道如何使用包含对象的对象从命令行向db正确插入jsonArrays 如何正确插入包含其他对象的对象的文档,arrays,json,mongodb,object,Arrays,Json,Mongodb,Object,在mongodb中,我想知道如何使用包含对象的对象从命令行向db正确插入json db.burgers.insert( [ {'burger': { 'patty': 'beef', 'cheese': false, 'toppings': [ 'ketchup', 'onions', 'pickles' ] }} ] )
db.burgers.insert(
[
{'burger': {
'patty': 'beef',
'cheese': false,
'toppings': [
'ketchup', 'onions', 'pickles'
]
}}
]
)
当我尝试上面的代码时,db.burgers.burger.find()
返回0
,而我希望它返回1
以下是它们如何返回的
db.burgers.find().pretty()
{
"_id" : ObjectId("5f87b58afd426d861d55b5ff"),
"burger" : {
"patty" : "beef",
"cheese" : false,
"toppings" : [
"ketchup",
"onions",
"pickles"
]
}
}
MongoDB不是这样工作的。您无法通过这种方式访问集合中的文档,必须使用该方法并通过所需的筛选器 将集合视为一个表,文档视为一行(实际上并非如此,但这种抽象可以使其更易于理解)。插入包含属性
burguer
的文档时,这并不意味着集合汉堡将包含属性burguer
,而是包含具有此属性的文档
我建议您阅读MongoDB官方文档
在mongodb中,我想知道如何正确地将json插入数据库
从包含对象的对象的命令行
db.burgers.insert(
[
{'burger': {
'patty': 'beef',
'cheese': false,
'toppings': [
'ketchup', 'onions', 'pickles'
]
}}
]
)
将文档插入到集合中是正确的。您可以使用insertOne
、insertMany
或insert
方法插入文档。insertOne
专门用于一次插入一个文档insert
和insertMany
可用于一次插入一个或多个文档
从命令行,mongo
shell:
> var doc = { 'burger': {
'patty': 'beef',
'cheese': false,
'toppings': [ 'ketchup', 'onions', 'pickles' ]
} }
> db.burgers.insertOne(doc)
{
"acknowledged" : true,
"insertedId" : ObjectId("5f87f68dd039d5cb61ae2251")
}
注意,\u id
字段是由MongoDB创建的
您可以使用insertMany
插入许多文档—一组JSON文档。比如说,
var docs_array = [ {... }, {... }, ... ]
db.burgers.insertMany(docs_array)
当我尝试上面的代码时,db.burgers.burger.find()返回0,当我 我希望它能返回1 您可以使用
find
或findOne
方法查询文档。find
返回一个光标(包含多个文档),而findOne
始终返回一个文档(如果未找到文档,则返回一个null
)。例如:
> db.burgers.findOne()
> db.burgers.findOne( { _id: ObjectId("5f87f68dd039d5cb61ae2251") } )
上面的查询返回上面新插入的文档
我认为您的查询db.burgers.burger.find()
不正确。如果只希望打印burger
字段(这是一个嵌套文档),请使用投影,如下所示:
> db.burgers.findOne( {}, { burger: 1, _id: 0 } )
{
"burger" : {
"patty" : "beef",
"cheese" : false,
"toppings" : [
"ketchup",
"onions",
"pickles"
]
}
}
注:投影只允许输出特定字段,不允许输出其他字段。在上面的查询中,\u id
字段被排除
如果要计算集合中的文档数,请使用以下方法:
> db.burgers.countDocuments({})
参考资料: